Срок действия сертификата TLS (SSL) на одном из моих сайтов истек вчера. Приобрел новый - и установил на сайт (работает на Debian 9 под nginx). Теперь, когда я захожу на сайт из Windows или Mac, сертификат обрабатывается правильно, и все работает нормально.
В то же время у меня есть служба, которая работает на этом же сервере и подключается к этому же сайту. После обновления сертификатаэта служба начала давать сбой. Пытаясь отладить это, я понял, что сама система, в которой установлен сертификат, не доверяет издателю. Используя wget, я получаю следующую ошибку:
Сертификат не имеет известного издателя
Используя curl, я получаю следующую ошибку:
Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента
Похоже, это указывает на отсутствует сертификат CA в системе. Я попробовал запустить update-ca-Certificates
и dpkg-reconfigure ca-сертификаты
. Оба процесса успешно завершаются, однако проблема не устранена.
Вот сведения о сертификате из Chrome на Mac:
Я попытался вручную добавить корневой сертификат эмитента в хранилище ca-certs и update-ca-certificate
, однако это привело к предупреждению о дублировании сертификата.
Как я могу решить эту проблему? Отключение проверки сертификата НЕ вариант; доступ к сайту через HTTP также невозможен.
Это больше похоже на проблему, когда вы неправильно установили новый сертификат, так что только сертификат сервера предоставляется в рукопожатии TLS, но не в промежуточных сертификатах. Браузер обычно успешно пытается обойти такую неправильную конфигурацию и сам заполнить недостающие сертификаты цепочки, в то время как другой клиент этого не делает. Пожалуйста, сравните свой сайт с SSLLabs и обратите внимание на «проблемы с цепочкой» - затем убедитесь, что вы правильно перенастроили свой сайт, чтобы больше не возникало проблем с цепочкой.