Ssl 处理链时无法获取本地颁发者证书

Ssl 处理链时无法获取本地颁发者证书,ssl,openssl,x509,pki,pkcs#12,Ssl,Openssl,X509,Pki,Pkcs#12,我有私钥(my_ca.key)和公钥(my_cert.crt),由DigiCert签名。现在我想创建RA(注册机构)并用我的私钥签名。这是我尝试的方法。但是,当我尝试将私钥和公钥导出为pkcs12文件时,我遇到了如下错误无法获取本地颁发者证书获取链。不知道怎么解决这个问题。这里,我的证书.crt是从DigiCert高保证CA-3扩展而来的,而该证书是从DigiCert高保证EV根CA扩展而来的 SSL_SUBJ="/C=LK/ST=Colombo/L=Colombo/O=Nope/OU=mob

我有私钥(my_ca.key)和公钥(my_cert.crt),由DigiCert签名。现在我想创建RA(注册机构)并用我的私钥签名。这是我尝试的方法。但是,当我尝试将私钥和公钥导出为pkcs12文件时,我遇到了如下错误无法获取本地颁发者证书获取链。不知道怎么解决这个问题。这里,我的证书.crt是从DigiCert高保证CA-3扩展而来的,而该证书是从DigiCert高保证EV根CA扩展而来的

 SSL_SUBJ="/C=LK/ST=Colombo/L=Colombo/O=Nope/OU=mobile/CN=My root"

 openssl genrsa -out ra.key 4096
 openssl req -new -key ra.key -out ra.csr -subj "$SSL_SUBJ"
 openssl x509 -req -days 365 -in ra.csr -CA my_cert.pem -CAkey my_ca.pem -  set_serial 76964474 -out ra.crt 
 openssl rsa -in ra.key -text > ra_private.pem
 openssl x509 -in ra.crt -out ra_cert.pem


 openssl pkcs12 -export -out ca.p12 -inkey my_ca.pem -in my_cert.pem -name "cacert" -passout pass:password
 openssl pkcs12 -export -out ra.p12 -inkey ra_private.pem -in ra_cert.pem -  chain -CAfile my_cert.pem -name "racert" -passout pass:password

您通常不能使用公共CA颁发的证书对客户端或服务器流量以外的任何内容进行签名;您将无法将其用于RA


错误消息表明中间证书有问题。在将其导出到pkcs12之前,请确保将Digicert的两个证书都添加到my_cert.pem文件中

您的意思是cat Digicert.crt my_cert.crt>my_cert.crt,并且没有-chain关键字,但没有-chain标志,这是否正确?如果您尝试此特定的cat命令,您将销毁my_cert.crt文件。我会这样做:cat DigiCert.crt my\u cert.crt>my\u cert\u to\u export.crt。请更正-chain标志。无论如何,你的ra证书上只有这个;请参阅我的回答,了解更多关于这方面的问题。好的,谢谢。实际上,我一直在为mac os x开发SCEP()协议。所以在这种情况下,我必须提供CA和RA,所以如果我创建自签名CA和RA,那么这是解决这个问题的正确方法吗?是的。CA证书必须进行标记(请参阅),如果您在CSR中设置了该标记,则商业CA在签署CSR之前总是会删除该标记。自签名CA证书是标准证书;它被称为根证书。当然,您需要将其添加到任何客户端的信任存储中,这些客户端将访问受其保护的站点(即,如果您使用CA为网站签署的证书,则必须将其添加到Web浏览器)。