我有私钥(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,并将测试服务器和客户端放在同一台机器上。
答案 0 :(得分:30)
这是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”单击它并选择“信任”选项。选择使用此证书时“始终信任”的选项。这就是全部 - 此证书将被标记为您的帐户信任。
答案 2 :(得分:0)
通常,除最后一个证书链外,证书链中的所有X.509证书都是CA证书。链中的第一个证书称为根CA(在您的情况下为DigiCert High Assurance EV根CA),然后发行者链中的其他CA证书(如果有)是中间CA,最后一个是最终实体(不是CA)。我不认为您可以颁发由非CA证书颁发的新SSL证书。因此,您可以使用由DigiCert签名的my_cert.crt作为SSL证书,但您不能使用my_ca.key发布自己的。