【问题标题】:This certificate has an invalid issuer keychain此证书的颁发者钥匙串无效
【发布时间】:2015-03-05 23:54:58
【问题描述】:

我确实有由 DigiCert 签名的私钥(my_ca.key)和公钥(my_cert.crt)。现在我想生成 SSL 证书(版本 3)并用我的私钥对其进行签名。这是我尝试这样做的方式。但是当我导出到钥匙串(Mac OS X)时。我收到类似“此证书的颁发者钥匙串无效”的错误。不知道如何解决这个问题。这里 my_cert.crt 是从 DigiCert High Assurance CA-3 扩展而来的,而那个是从 DigiCert High Assurance EV Root CA 扩展而来的。还将 DigiCert High Assurance CA-3、DigiCert High Assurance EV Root CA 添加到钥匙串中。它显示 my_cert.crt 是有效的。怎么会出现这种错误。

######### Initialization

SSL_SUBJ="/C=LK/ST=Colombo/L=Colombo/O=wso2/OU=laptop/CN=mdm.go.com"

########SSL Certificate

echo "\nGenerating SSL Certificate >>>>>> START"

openssl genrsa -out ia.key 4096
openssl req -new -key ia.key -out ia.csr -subj "$SSL_SUBJ"
openssl x509 -req -days 365 -in ia.csr -CA my_cert.pem -CAkey my_ca.pem -set_serial 765644787 -out ia.crt -extensions v3_ca -extfile ./openssl.cnf

echo "\nGenerating SSL Certificate >>>>>> END \n"

openssl pkcs12 -export -out ia.p12 -inkey ia.key -in ia.crt -CAfile my_cert.pem -name sslcert -passout pass:password

注意:在 /etc/hosts 中添加了自定义条目,将 IP 地址映射到 SSL 证书 CN,用于测试服务器和客户端在同一台机器上。

【问题讨论】:

  • 你的证书(my_cert.crt)是CA证书吗?这意味着当您在某些查看器中打开证书时,“基本约束”部分中有什么?主题类型=最终实体或主题类型=CA?

标签: ssl openssl x509certificate keychain pkcs#12


【解决方案1】:
  1. 下载 https://developer.apple.com/certificationauthority/AppleWWDRCA.cer 并双击安装到 Keychain。
  2. 选择“查看”->“显示 Keychain 应用中的“过期证书”。
  3. 确认已选择“证书”类别。
  4. 删除过期的 Apple 全球开发者关系证书颁发机构 来自“登录”标签和“系统”标签的证书。

这是苹果的答案。

感谢您提请社区注意,并 为您遇到的问题道歉。这个问题源于 在两者中都有过期的 WWDR 中间证书的副本 您的系统和登录钥匙串。要解决此问题,您应该 首先下载并安装新的 WWDR 中间证书(通过 双击文件)。接下来,在钥匙串访问 应用程序,选择系统钥匙串。确保选择“显示 “查看”菜单中的“过期证书”,然后删除过期的证书 Apple 全球开发者关系证书版本 权威中级证书(2016 年 2 月 14 日到期)。 您的证书现在应该在 Keychain Access 中显示为有效,并且 Xcode 可用于提交到 App Store。

您也可以查看https://forums.developer.apple.com/thread/37208

更多详情请参考https://developer.apple.com/support/certificates/expiration/

【讨论】:

  • 它最初对我不起作用,但这是因为我只删除了一个“开发者关系证书”。我在钥匙串访问中所做的是在左侧类别部分中选择“所有项目”,然后搜索“关系”。这产生了多个结果,然后我删除了过期的一个。
  • 感谢有关删除它的提示。我实际上已经导入了另一个,但由于某种原因,我的证书仍然说它有一个无效的颁发者。删除过期的才生效。
【解决方案2】:

对于这个问题我有一个简单的解决方案。

选择钥匙串中的证书右键单击它。在那里您将看到“GetInfo”选项,单击它并选择“Trust”选项。在使用此证书时选择“始终信任”选项。就是这样 - 此证书将对您的帐户标记为受信任。

【讨论】:

    【解决方案3】:

    通常证书链中除最后一个之外的所有 X.509 证书都是 CA 证书。链中的第一个证书称为根 CA(在您的情况下为 DigiCert High Assurance EV 根 CA),然后颁发者链中的其他 CA 证书(如果有)是中间 CA,最后一个是最终实体(不是 CA)。我认为您不能颁发由非 CA 证书颁发的新 SSL 证书。因此,您可以使用 DigiCert 签名的 my_cert.crt 作为 SSL 证书,但不能使用 my_ca.key 颁发自己的证书。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-25
    • 2016-05-25
    • 2011-09-23
    • 1970-01-01
    • 2019-08-04
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多