Я диагностирую проблему проверки сертификата TLS в Ubuntu Xenial, возникшую в результате недавнего Давайте зашифруем срок действия корневого сертификата. Проблема возникает в cURL, который использует GnuTLS под капотом, поэтому я использовал gnutls-cli
диагностировать его (при использовании openssl
, другая проблема возникает еще до проверки сертификата - так что это бесполезно).
Несмотря на то, что я обновил сертификат DST Root CA X3 (с apt установить ca-сертификаты
) и подтвердил, что, сравнив содержимое /usr/share/ca-сертификаты/mozilla/
(по именам файлов, размерам и суммам MD5) на проблемной машине и на другой, где ошибки нет, проблема сохраняется. Различение содержимого /etc/ssl/certs/ca-certificates.crt
(это файл, который напрямую использует GnuTLS, предположительно автоматически сгенерированный из прежнего каталога /usr/sbin/update-ca-сертификаты
) показывает различия, но сертификат DST Root CA X3 среди них отсутствует.
Теперь я застрял в точке, где я могу воспроизвести проблему с gnutls-cli
-- но он не показывает, какой корневой сертификат он использует, только цепочка сертификатов, предоставленная сервером, с которой все в порядке:
$ gnutls-cli download.clis.cloud.ibm.com --print-cert </dev/null 2>&1
Обработано 129 сертификатов ЦС.
Разрешение "download.clis.cloud.ibm.com"...
Подключение к "69.192.0.152:443"...
- Тип сертификата: X.509
- Получил список сертификатов из 3 сертификатов.
- Информация о сертификате[0]:
- субъект CN=cert-00045-cdnedge-bluemix.akamaized.net, эмитент `C=US,O=Let's Encrypt,CN=R3', ключ RSA 2048 бит, подписан с использованием RSA-SHA256, активирован `2021-10 -19 02:05:23 UTC', истекает '2022-01-17 02:05:22 UTC', отпечаток SHA-1 '8a13f222870579984cf6a0c6cf8ebfe6f122eb0b'
Идентификатор открытого ключа:
8bb871d529bc8edcd0158b6a16787990e7334bc9
Случайное искусство открытого ключа:
<...>
-----НАЧАТЬ СЕРТИФИКАТ-----
<...>
-----КОНЕЦ СЕРТИФИКАТА-----
- Информация о сертификате[1]:
- субъект `C=US,O=Let's Encrypt,CN=R3', эмитент `C=US,O=Internet Security Research Group,CN=ISRG Root X1', ключ RSA 2048 бит, подписан с использованием RSA-SHA256, активирован ` 2020-09-04 00:00:00 UTC', срок действия '2025-09-15 16:00:00 UTC', отпечаток SHA-1 'a053375bfe84e8b748782c7cee15827a6af5a405'
-----НАЧАТЬ СЕРТИФИКАТ-----
<...>
AYYwHQYDVR*** Неустранимая ошибка: Ошибка в сертификате.
*** Рукопожатие не удалось
Ошибка GnuTLS: ошибка в сертификате.
<...>
-----КОНЕЦ СЕРТИФИКАТА-----
- Информация о сертификате[2]:
- субъект "C=US,O=Internet Security Research Group,CN=ISRG Root X1", эмитент "O=Digital Signature Trust Co.,CN=DST Root CA X3", ключ RSA 4096 бит, подписанный с использованием RSA-SHA256, активировано `2021-01-20 19:14:03 UTC', истекает `2024-09-30 18:14:03 UTC', отпечаток SHA-1 `933c6ddee95c9c41a40f9f50493d82be03ad87bf'
-----НАЧАТЬ СЕРТИФИКАТ-----
<...>
-----КОНЕЦ СЕРТИФИКАТА-----
- Статус: Сертификат НЕ является доверенным. В цепочке сертификатов используется просроченный сертификат.
*** Проверка PKI сертификата сервера не удалась...
Так Я не вижу, какой локальный сертификат продолжает вызывать проблему. Есть ли способ получить эту информацию?