此证书具有无效的颁发者钥匙串

This certificate has an invalid issuer keychain

我有私钥(my_ca.key)和由 DigiCert 签名的 public 密钥(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,用于测试服务器和客户端是否在同一台机器上。

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

颁发自己的证书
  1. 下载 https://developer.apple.com/certificationauthority/AppleWWDRCA.cer 并双击安装到钥匙串。
  2. Select "View" -> "显示 Keychain 应用程序中的“过期证书”。
  3. 确认已选择 "Certificates" 类别。
  4. 删除过期的 Apple 全球开发者关系证书颁发机构 来自 "login" 选项卡和 "System" 选项卡的证书。

这是 Apple 的回答。

Thanks for bringing this to the attention of the community and apologies for the issues you’ve been having. This issue stems from having a copy of the expired WWDR Intermediate certificate in both your System and Login keychains. To resolve the issue, you should first download and install the new WWDR intermediate certificate (by double-clicking on the file). Next, in the Keychain Access application, select the System keychain. Make sure to select “Show Expired Certificates” in the View menu and then delete the expired version of the Apple Worldwide Developer Relations Certificate Authority Intermediate certificate (expired on February 14, 2016). Your certificates should now appear as valid in Keychain Access and be available to Xcode for submissions to the App Store.

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

有关详细信息,请参阅 https://developer.apple.com/support/certificates/expiration/

我有解决这个问题的简单方法。

Select钥匙串中的证书右键单击它。在那里你会看到选项 "GetInfo" 单击它和 select "Trust" 选项。 Select 使用此证书时的选项 "Always trust"。就是这样 - 此证书将被标记为您的帐户受信任。