Узлу не удалось проверить первый сертификат при доступе к CouchDB через HTTPS с сертификатом Let's Encrypt - PullRequest
0 голосов
/ 30 марта 2020

Я уже нашел ответ на этот вопрос, и просто хочу задокументировать свое открытие.

Проблема связана с использованием Node.js для доступа CouchDB через HTTPS . Сервер CouchDB был настроен с сертификатом SSL , сгенерированным Let's Encrypt . cert_file , указанный в local.ini , содержит как сертификат сервера, так и промежуточный сертификат выпуска. Когда я подтвердил URL через браузер, соединение было показано как действительное. Однако всякий раз, когда я пытался получить тот же URL-адрес с Node , UNABLE_TO_VERIFY_LEAF_SIGNATURE / не мог проверить первый сертификат выдавалась ошибка.

Я пытался добавить root сертификат для узла с использованием переменной среды NODE_EXTRA_CA_CERTS . Это не удалось. Затем я попытался добавить промежуточный сертификат к NODE_EXTRA_CA_CERTS , и это сработало. Я мог бы остановиться там, но почему-то я знал, что что-то не так.

1 Ответ

1 голос
/ 30 марта 2020

После дальнейших исследований я наконец обнаружил, что, хотя cert_file , используемый CouchDB , включает в себя как сертификат сервера, так и промежуточный сертификат, в отличие от некоторых других серверов, CouchDB * Сам 1006 * отправил бы обратно только сертификат сервера. Чтобы правильно решить эту проблему, мне нужно указать промежуточный сертификат как cacert_file в файле local.ini . Как только я это сделал, ошибка исчезла.

...