我一直关注these instructions在Windows上运行的CouchDB实例上启用ssl。 我使用自我认证的.pem证书和密钥生成
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
使用curl -k https://127.0.0.1:6984/
工作正常,但Chrome和Firefox的反应不同:
sec_error_invalid_key
ERR_SSL_PROTOCOL_ERROR
。我尝试手动将我的证书添加到Chrome,结果相同。在被拒绝的连接上,Erlang控制台显示:
[error] [<0.15176.0>] SSL: certify: tls_connection.erl:2286:Fatal error: decode error
我需要从浏览器访问,因为这是一个网络应用程序。我的密钥和证书生成是否正确?
答案 0 :(得分:3)
Erlang中SSL实现的邮件列表hinted可能存在缺陷。
根据他们的建议,我在CouchDB前面使用stunnel作为SSL隧道。客户端通过HTTPS连接到stunnel,stunnel通过HTTP与CouchDB通信,但由于两者都在同一台机器上,因此应该没问题。
stunnel在安装时会生成自己的证书,必须将其(对于Chrome / Win7)添加为受信任的根证书颁发机构。此外,当您实际退出菜单并重新启动时,Chrome只会考虑新证书 - 关闭窗口并不总是这样做。
答案 1 :(得分:1)
我与CouchDB和自己生成的证书有完全相同的问题。 我放弃了它。
但我建议你尝试一些事情:
如果您使用的是CORS而您的主站点位于http,则可能是问题所在。主站点上的https也可能不允许CORS - Check here, nothing about https
尝试使用代理让所有流量通过一个地址和端口。这可能有帮助:) 如果您只使用CouchDB,那么您可能会遇到证书问题。
祝你好运,请在解决时回复:)我也想了解自己。