CouchDB over HTTPS 和自认证证书:浏览器拒绝它
CouchDB over HTTPS and self-certified certificate : browsers reject it
我一直在关注 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 的反应不同:
- Firefox 首先让我为自签名证书添加安全例外,然后抛出
sec_error_invalid_key
- Chrome 只是抛出一个
ERR_SSL_PROTOCOL_ERROR
。我尝试手动将我的证书添加到 Chrome,结果相同。
对于被拒绝的连接,Erlang 控制台显示:
[error] [<0.15176.0>] SSL: certify: tls_connection.erl:2286:Fatal error: decode error
我需要从浏览器访问,因为这是一个网络应用程序。我的密钥和证书生成是否正确?
我在 CouchDB 和自生成证书方面遇到了完全相同的问题。
我已经放弃了。
但我可以建议你尝试一些事情:
如果您使用的是 CORS 并且您的主站点位于 http 上,则可能是问题所在。主站点上的 https 也可能不允许 CORS -
Check here, nothing about https
尝试使用代理让所有流量都通过一个地址和端口。这可能会有所帮助 :)
如果您只直接使用 CouchDB,那么您可能遇到证书问题。
祝你好运,解决后请post回来:)我自己也想知道。
找到解决方案
Erlang 中的 SSL 实现可能存在缺陷的邮件列表hinted。
根据他们的建议,我使用 stunnel 作为 CouchDB 前面的 SSL 隧道。客户端通过 HTTPS 连接到 stunnel,stunnel 通过 HTTP 与 CouchDB 通信,但由于两者都在同一台机器上,所以应该没问题。
stunnel 在安装时生成自己的证书,(对于 Chrome / Win7)必须添加为 受信任的根证书颁发机构 。此外,Chrome 仅在您实际 退出菜单 并重新启动时才会考虑新证书 - 关闭 window 并不总是如此。
我一直在关注 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 的反应不同:
- Firefox 首先让我为自签名证书添加安全例外,然后抛出
sec_error_invalid_key
- Chrome 只是抛出一个
ERR_SSL_PROTOCOL_ERROR
。我尝试手动将我的证书添加到 Chrome,结果相同。
对于被拒绝的连接,Erlang 控制台显示:
[error] [<0.15176.0>] SSL: certify: tls_connection.erl:2286:Fatal error: decode error
我需要从浏览器访问,因为这是一个网络应用程序。我的密钥和证书生成是否正确?
我在 CouchDB 和自生成证书方面遇到了完全相同的问题。 我已经放弃了。
但我可以建议你尝试一些事情:
如果您使用的是 CORS 并且您的主站点位于 http 上,则可能是问题所在。主站点上的 https 也可能不允许 CORS - Check here, nothing about https
尝试使用代理让所有流量都通过一个地址和端口。这可能会有所帮助 :) 如果您只直接使用 CouchDB,那么您可能遇到证书问题。
祝你好运,解决后请post回来:)我自己也想知道。
找到解决方案
Erlang 中的 SSL 实现可能存在缺陷的邮件列表hinted。
根据他们的建议,我使用 stunnel 作为 CouchDB 前面的 SSL 隧道。客户端通过 HTTPS 连接到 stunnel,stunnel 通过 HTTP 与 CouchDB 通信,但由于两者都在同一台机器上,所以应该没问题。
stunnel 在安装时生成自己的证书,(对于 Chrome / Win7)必须添加为 受信任的根证书颁发机构 。此外,Chrome 仅在您实际 退出菜单 并重新启动时才会考虑新证书 - 关闭 window 并不总是如此。