Como configurar o SSL para o CouchDB

4

Como configuro o Couchdb para usar ssl, segui as instruções aqui sem sucesso.

Eu gero meu próprio certificado autoassinado:

mkdir cert && cd cert
openssl genrsa > privkey.pem
openssl req -new -x509 -key privkey.pem -out mycert.pem -days 1095

Eu descomentei as linhas relevantes em /usr/local/etc/couchdb/local.ini

httpsd = {couch_httpd, start_link, [https]}

e aponte para meus certificados

cert_file = /usr/local/etc/couchdb/certs/mycert.pem
key_file = /usr/local/etc/couchdb/certs/privkey.pem

Mas quando eu tento testá-lo

curl -k -v https://127.0.0.1:6984
* About to connect() to 127.0.0.1 port 6984 (#0)
*   Trying 127.0.0.1... connected
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to 127.0.0.1:6984 
* Closing connection #0
curl: (35) Unknown SSL protocol error in connection to 127.0.0.1:6984 

Eu realmente não tenho certeza do que está errado.

Notas

Eu instalei o couchdb 1.2 da fonte de acordo com as instruções aqui .

    
por Martinffx 08.12.2012 / 12:17

2 respostas

2

Então eu executei os seguintes comandos:

# openssl genrsa -out localhost.key 2048

# openssl req -new -x509 -key localhost.key -out localhost.crt -days 3650 -subj /CN=localhost

Depois disso, eu configuro o local.ini da seguinte forma: (certificando-se de que esses arquivos de certificado são acessíveis a partir do usuário couchdb):

[daemons]
httpsd = {couch_httpd, start_link, [https]}

[ssl]
cert_file = /opt/couchdb/etc/cert/localhost.crt
key_file = /opt/couchdb/etc/cert/localhost.key

Quando executo este comando no meu pc, isso funciona bem:

curl -v -k https://localhost:6984/
    
por 29.09.2013 / 20:29
0

Eu estava ficando louco com basicamente o mesmo problema, mas no RHEL6 com o CouchDB 1.6.1.

Navegando através de listas de discussão sem fim, percebi que era provável que um problema "não identificado" com as bibliotecas SSL do erlang causasse essa falha silenciosa.

Minha solução alternativa (que funciona para mim) era usar stunnel .

  • Download / instalação
  • Crie seus certificados como antes

Aqui está uma configuração de rascunho para stunnel, supondo que você tenha um par de chaves / crt auto-assinado com o SSL aberto:

fips = no

[couchdb]
accept = 6984
key = [path to your key file]
cert = [path to your cert file]
connect = 127.0.0.1:5984

Observe que stunnel estava se lamentando sobre algo relacionado ao FIPS no meu local, então acabei desabilitando-o para uma gratificação rápida, daí a linha fips = no .

    
por 25.02.2016 / 13:30