Как мне настроить 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
линия.