我基本上有完全相同的问题使用 Lets Encrypt SSL 证书配置 CouchDB,因此一直关注这个答案。但它仍然不起作用。
我已经开始Bitnami CouchDB 虚拟机在 Azure 上,因此 CouchDB 3.3.1 已经设置好(在 Debian 10 上),并且可以通过 HTTP 在端口 5984 上正常工作。我正在使用certbot获取证书并设置续订后挂钩以复制它们并将所有者更改为couchdb
。我已更新 CouchDB 的local.ini
文件以配置对 SSL 的支持:
[httpd]
bind_address = 0.0.0.0
[daemons]
httpsd = {couch_httpd, start_link, [https]}
[ssl]
enable = true
cert_file = /opt/bitnami/couchdb/etc/certs/cert.pem
key_file = /opt/bitnami/couchdb/etc/certs/privkey.pem
cacert_file = /opt/bitnami/couchdb/etc/certs/fullchain.pem
一旦 CouchDB 服务重新启动,我就可以看到
[info] 2021-03-25T21:25:38.726431Z [email protected] <0.239.0> -------- Apache CouchDB has started on https://0.0.0.0:6984/
在日志中,看起来 CouchDB 对设置很满意。
使用netstat -tulnp
,我看到:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5984 0.0.0.0:* LISTEN 990/beam.smp
tcp 0 0 0.0.0.0:6984 0.0.0.0:* LISTEN 990/beam.smp
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 990/beam.smp
因此看起来端口已打开并正在被监听(PID 990 是 CouchDB)。我还确保 Azure 网络安全组为端口 6984 设置了入站规则。
但它仍然没有连接-openssl s_client -connect <server_domain>:6984 -servername <server_domain>
显示:
CONNECTED(00000004)
write:errno=0
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 321 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
ufw
似乎没有安装(因此另一个答案这个问题无关紧要),当我尝试连接时,CouchDB 日志中没有错误。我甚至尝试过按照以下说明将证书暂时替换为自签名证书:Bitnami 的文档,但出现同样的错误。
那么我还应该检查什么?