我正在连接一个服务器,该服务器的证书由我自己的 CA 签名,该 ca 的证书已安装到系统的钥匙串中。
连接openssl s_client -connect some.where
说Verify return code: 0 (ok)
但我无法连接 nodejs 的 tls/https 模块,该模块失败了
Error: SELF_SIGNED_CERT_IN_CHAIN
但连接到普通服务器(即 google.com:443)工作正常。
似乎nodejs的openssl与系统的openssl没有共享相同的钥匙串。
但我找不到它在哪里。我尝试过,SSL_CERT_DIR
但似乎没有工作。
顺便说一句:我可以通过设置绕过服务器验证NODE_TLS_REJECT_UNAUTHORIZED=0
,但这还不够;)
我使用 OSX 10.8.3 和 OpenSSL 0.9.8r,节点 v0.9.8