Ssl 此证书具有无效的颁发者密钥链
我有私钥(my_ca.key)和公钥(my_cert.crt),由DigiCert签名。现在我想生成SSL证书(版本3)并用私钥对其进行签名。这是我尝试的方法。但当我导出到keychain(macosx)时。我一直收到这样的错误“此证书具有无效的颁发者密钥链”。不知道怎么解决这个问题。在这里,my_cert.crt是从DigiCert高保证CA-3扩展而来的,它是从DigiCert高保证EV根CA扩展而来的。还将DigiCert高保证CA-3、DigiCert高保证EV根CA添加到钥匙链中。它表明我的证书是有效的。你怎么会犯这样的错误呢Ssl 此证书具有无效的颁发者密钥链,ssl,openssl,x509certificate,keychain,pkcs#12,Ssl,Openssl,X509certificate,Keychain,Pkcs#12,我有私钥(my_ca.key)和公钥(my_cert.crt),由DigiCert签名。现在我想生成SSL证书(版本3)并用私钥对其进行签名。这是我尝试的方法。但当我导出到keychain(macosx)时。我一直收到这样的错误“此证书具有无效的颁发者密钥链”。不知道怎么解决这个问题。在这里,my_cert.crt是从DigiCert高保证CA-3扩展而来的,它是从DigiCert高保证EV根CA扩展而来的。还将DigiCert高保证CA-3、DigiCert高保证EV根CA添加到钥匙链中。它表
######### 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根CA),然后颁发者链中的其他CA证书(如果有)是中间CA,最后一个是终端实体(不是CA)。我认为您不能颁发由非CA证书颁发的新SSL证书。因此,您可以使用DigiCert签署的my_cert.crt作为SSL证书,但不能使用my_ca.key颁发您自己的证书
有关更多详细信息,请参阅我有一个解决此问题的简单方法 在keychain中选择证书右键单击它。在那里,您将看到选项“GetInfo”,单击它并选择“Trust”选项。选择使用此证书时的选项“始终信任”。仅此而已-此证书将被标记为您帐户的受信任证书
您的证书(my_cert.crt)是CA证书吗?这意味着当您在某些查看器中打开证书时,“基本约束”部分中有什么内容?Subject Type=End Entity或Subject Type=CA?我正在了解这些东西是如何工作的,在中也有明确提到。不管怎样,谢谢你的回复。起初,它对我不起作用,但那是因为我只删除了一个“开发者关系证书”。我在Keychain Access中所做的是选择左侧类别部分中的“所有项目”,然后搜索“关系”。这产生了多个结果,然后我删除了一个过期的。谢谢你的提示删除它。我实际上已经导入了另一个,但出于某种原因,我的证书仍然显示它有一个无效的颁发者。只有在删除过期的一个后,它现在才起作用。