configure o CouchDB com o certificado Lets Encrypt SSL

5

O que eu gostaria de fazer: Agora estou usando um certificado SSL autoassinado que funciona maravilhosamente. Mas eu gostaria de substituí-los por um oficial de lets encrypt .

O que eu tenho (certificado auto-assinado): Aqui está uma saída das configurações importantes (local.ini) para SSL que tenho agora:

[daemons]
; enable SSL support by uncommenting the following line and supply the PEM's below.
; the default ssl port CouchDB listens on is 6984
httpsd = {couch_httpd, start_link, [https]}

[ssl]
cert_file = /etc/couchdb/certs/server.crt   // these are my self made certificates
key_file = /etc/couchdb/certs/server.key    // these are my self made certificates

; set to true to validate peer certificates
verify_ssl_certificates = false
; Path to file containing PEM encoded CA certificates (trusted
; certificates used for verifying a peer certificate). May be omitted if
; you do not want to verify the peer.
;cacert_file = /full/path/to/cacertf
; The verification fun (optional) if not specified, the default
; verification fun will be used.
;verify_fun = {Module, VerifyFun}
; maximum peer certificate depth
ssl_certificate_max_depth = 1

O que eu tentei (permite codificar): Depois de seguir os documentos de vamos criptografar eu tenho uma pasta /etc/letsencrypt/live/[domain] com os seguintes arquivos:

-cert.pem       // seems to be the public certificate
-chain.pem      // seems to be the public certificate from the keychain
-fullchain.pem  // seems to be the cert.pem + chain.pem
-privkey.pem    // seems to be the private certificate

Então eu tentei substituir os novos certificados pelos antigos no meu local.ini

[ssl]
cert_file = /etc/letsencrypt/live/[domain]/cert.pem      // new certificate
key_file = /etc/letsencrypt/live/[domain]/privkey.pem    // new certificate

O problema: Após uma reinicialização do CouchDB, a porta 5984 não-SSL ainda funciona. Mas com o SSL na porta 6984 recebo um connection reset error no chrome. PS: Eu também uso os mesmos certificados letsencrypt para o meu nginx, onde eles estão funcionando perfeitamente.

Alguma idéia?

Abre as informações de depuração:

1) Com SSL e certificado auto-assinado, recebo um certificado de impressão e muitas informações que eu digitei uma vez.

2) Sem SSL e letsencrypt openssl s_client -connect localhost:5984

CONNECTED(00000003)
140581663061872:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:795:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 207 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE

3) Com SSL e letsencrypt openssl s_client -connect localhost:6984

CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 207 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
    
por mnewmedia 16.12.2015 / 16:07

2 respostas

-2

As únicas opções que encontrei são:

  • Use o CouchDB 2.0
  • ou use um proxy, como nginx
por 04.01.2016 / 15:02
5

com o couchDB 1.6.x

copie os arquivos /etc/letsencrypt/archive/xxxx em /var/lib/couchdb/cert/

Verifique os direitos de acesso para o CouchDB

Coloque os seguintes valores em /usr/local/etc/couchdb/local.ini

cert_file = /var/lib/couchdb/cert1/cert1.pem key_file = /var/lib/couchdb/cert1/privkey1.pem cacert_file = /var/lib/couchdb/cert1/fullchain1.pem

    
por 01.06.2016 / 16:07