And*_*Kew 5 apache ssl couchdb
我正在云(AWS)中的Ubuntu 12.10服务器上运行Apache CouchDB实例(版本1.3.0).我正在尝试在我的couchDB实例上运行SSL.
基本的SSL设置非常简单.我已将证书和密钥放在目录中,并在local.ini文件中取消注释以下行
httpsd = {couch_httpd, start_link, [https]}
cert_file = /usr/local/etc/couchdb/certs/mycouchdbserver_cert.pem
key_file = /usr/local/etc/couchdb/certs/mycouchdbserver_key.pem
Run Code Online (Sandbox Code Playgroud)
我还确保这些文件的所有权是正确的.
这很好,couchDB服务器启动,你可以导航到https://mycouchdbserver.com/_utils/没有问题.
使用openssl进行测试
openssl s_client -showcerts -connect mycouchdbserver.com:443
Run Code Online (Sandbox Code Playgroud)
为标准SSL配置提供正确的结果
在DigiCert网站上测试设置时(通过SSL证书购买的公司 - 测试链接:http://www.digicert.com/help/)我收到以下错误:
服务器未发送所需的中间证书.
购买SSL证书时,我从DigiCert获得了中间证书,并下载了DigiCert的根证书.
在couchDB的local.ini配置文件中,您可以将它们与以下配置字段一起使用:
verify_ssl_certificates = true
cacert_file = xxxx
Run Code Online (Sandbox Code Playgroud)
我的问题是,我无法让这个工作,并尝试了所有可能的组合,以使其工作.这是我尝试过的:
所有上述内容都会在couchDB日志中引发错误.有些在错误日志中提供了大量的输出,但使用数字3,我得到了
=ERROR REPORT==== 11-Jun-2013::11:35:30 ===
SSL: hello: ssl_handshake.erl:252:Fatal error: internal error
Run Code Online (Sandbox Code Playgroud)
用openssl测试我得到了
CONNECTED(00000003)
16871:error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal error:s3_pkt.c:1099:SSL alert number 80
16871:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何使用couchDB正确使用verify_ssl_certificates,根证书和中间证书
我在线阅读了所有文档,没有任何帮助
先谢谢安德鲁
对于任何感兴趣的人来说,这就是我们最终解决问题的方法:
似乎我们无法让 couchDB 使用我们的中间证书正常工作。
由于我们在 AWS EC2 实例上运行 couchDB 服务器,因此我刚刚创建了一个 ELB(弹性负载均衡器)实例并将我的证书上传到 ELB,然后将 EC2 实例添加到我的负载均衡器下,并将我的 DNS 重新路由到负载均衡器(此处也使用 Route53)。
然后,我在 couchDB 上完全关闭 SSL,并将 SSL 握手交给支持使用中间证书的负载均衡器。
这确实意味着 ELB 和 couchDB 之间的通信不安全,但对我们来说这很好。
这也意味着我们现在可以在 ELB 下添加更多 couchDB 服务器以实现可扩展性,从而实现 2 鸟 1 石头解决方案。
您也可以使用 Nginx 执行相同的解决方案,但添加和管理 ELB 既简单又稳定,因此我们采用了 ELB 解决方案。
| 归档时间: |
|
| 查看次数: |
2396 次 |
| 最近记录: |