Назад | Перейти на главную страницу

Как настроить SSL для CouchDB

Как мне настроить Couchdb для использования ssl, я выполнил инструкции Вот безуспешно.

Я генерирую собственный самозаверяющий сертификат:

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

Я раскомментирую соответствующие строки в /usr/local/etc/couchdb/local.ini

httpsd = {couch_httpd, start_link, [https]}

и укажите на мои сертификаты

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

Но когда я пытаюсь проверить это

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 

Я действительно не уверен, что не так.

Ноты

Я установил couchdb 1.2 из исходников в соответствии с инструкциями Вот.

Итак, я выполнил следующие команды:

# openssl genrsa -out localhost.key 2048

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

После этого я настраиваю local.ini следующим образом: (убедившись, что эти файлы сертификатов доступны от пользователя 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

Когда я запускаю эту команду на своем компьютере, она отлично работает:

curl -v -k https://localhost:6984/

Я сходил с ума от той же проблемы, но на RHEL6 с CouchDB 1.6.1.

Просматривая бесконечные списки рассылки, я понял, что это, скорее всего, "неопознанная" проблема с библиотеками SSL erlang, вызывающая этот тихий сбой.

Мой обходной путь (который работает для меня) заключался в использовании станнель.

  • Скачать / установить
  • Создайте свои сертификаты, как раньше

Вот черновой вариант настройки stunnel, предполагающий, что у вас есть пара ключ / crt, самоподписанная с открытым SSL:

fips = no

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

Обратите внимание, что stunnel жаловался на что-то, связанное с FIPS на моем локальном компьютере, поэтому я отключил его для быстрого удовлетворения, поэтому fips = no линия.