security - CouchDB over HTTPS 和自认证证书 : browsers reject it

标签 security ssl https couchdb

我一直在关注 these instructions在 Windows 上运行的 CouchDB 实例上启用 ssl。 我正在使用通过

生成的 self 认证的 .pem 证书和 key
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

使用 curl -k https://127.0.0.1:6984/ 效果很好,但 Chrome 和 Firefox 的 react 不同:

  • Firefox 首先让我为自签名证书添加一个安全异常(exception),然后抛出一个 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

我需要从浏览器访问,因为这是一个网络应用程序。我的 key 和证书生成是否正确?

最佳答案

找到解决方案

邮件列表hinted Erlang 中的 SSL 实现可能存在缺陷。

根据他们的建议,我正在使用 stunnel作为 CouchDB 前面的 SSL 隧道。客户端通过 HTTPS 连接到 Stunnel,Stunnel 通过 HTTP 与 CouchDB 通信,但由于两者都在同一台机器上,所以应该没问题。

stunnel 在安装时生成自己的证书,必须将其(对于 Chrome/Win7)添加为受信任的根证书颁发机构。此外,只有当您实际退出菜单并重新启动时,Chrome 才会考虑新证书 - 关闭窗口并不总是如此。

关于security - CouchDB over HTTPS 和自认证证书 : browsers reject it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30939983/

相关文章:

python - 在 Python2.7.* 中使用 SSL 证书

java - tls zuul 和微服务用证书相互认证

ssl - 如何在 Istio 中同时启用 Mutual TLS 和 gRPC TLS 以便 Istio 可以收集指标,但 gRPC 认为连接 "Safe"

git - 如何在限制 ssh 的防火墙后面通过 https 访问 heroku git

ssl - 带有 Firebase 的 Telit GE910 SSL 协议(protocol)

security - 如何让 IOS 应用*需要* DNSSec?

security - 尽管缺少 'Bearer',请求仍然成功

javascript - 在数据库中散列密码有什么意义?

java - 如何设置 Java 以使用 Eclipse 的用户特定证书?

delphi - 能够看到 https header 是否正常?