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