我使用传递给https.createServer的以下选项,
options =
ca: splitca fs.readFileSync sslpaths.capath, encoding:'utf8'
key: fs.readFileSync sslpaths.keypath, encoding:'utf8'
cert: fs.readFileSync sslpaths.certpath
其中splitca
只是为了拆分CA crt包文件的两个pem块。但有时Chrome不喜欢这样,当我加载我的域时,它说证书不可信任。然后有时它工作得很好并显示来自addTrust根的两个Comodo CA节点,然后是我的服务器证书。当我使用openssl s_client -connect mydomain.com:443 -showcerts
时,我收到错误“无法获得本地发卡机构证书”#39;当我完全删除ca参数时,Chrome仍然会工作,但openssl仍然没有证书链中的两个CA pem块。我猜测Chrome正在自己查找CA并缓存证书?
我还尝试将CA crt文件放在我的服务器crt文件前面,在升级我的nodejs(v0.12)之前,我会从openssl获得某种握手sslv3失败。现在,当我尝试使用nodejs v5.0时,我得到错误:0B080074:x509证书例程:X509_check_private_key:键值不匹配从nodejs抛出。任何帮助将不胜感激。