此证书具有无效的颁发者密钥链

时间:2015-03-05 23:54:59

标签: ssl openssl x509certificate keychain pkcs#12

我有私钥(my_ca.key)和公钥(my_cert.crt),由DigiCert签名。现在我想生成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,并将测试服务器和客户端放在同一台机器上。

3 个答案:

答案 0 :(得分:30)

  1. 下载 https://developer.apple.com/certificationauthority/AppleWWDRCA.cer 并双击以安装到Keychain。
  2. 选择"查看" - > "显示 过期的证书"在Keychain app。
  3. 确认"证书"选择了类别。
  4. 删除过期的Apple全球开发者关系证书颁发机构 证书来自"登录"选项卡和"系统"标签。
  5. 这是Apple的答案。

      

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

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

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

答案 1 :(得分:13)

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

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

enter image description here

答案 2 :(得分:0)

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