Curl говорит, что срок действия SSL-сертификата истек, когда это не так

#php #ssl #curl #certificate #lets-encrypt

Вопрос:

При использовании curl на моем сервере для доступа к другим серверам я получаю такой ответ:

 curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
 

Использование curl с моего локального компьютера или открытие того же URL-адреса в браузере отображает сертификат как действительный. Проблема, по-видимому, связана с отключением поддержки letsencrypt для более старого корневого сертификата. Но я просто не могу обновить доверенные корневые сертификаты сервера.
Я попытался update-ca-certificates -f -v вручную загрузить обновленные корневые сертификаты через wget https://curl.se/ca/cacert.pem -O /etc/ssl/certs/cacert.pem , но ничего не работает.
Есть какие-нибудь идеи?

Ответ №1:

Поскольку информации недостаточно, я не могу подтвердить причину, но вы можете попробовать выполнить следующие действия, чтобы удалить старый центр сертификации Let’sEncrypt:

  1. Проверьте, что корень DST находится в /etc/pki/tls/certs/ca-bundle.crt, а корень ISRG X1 находится в корне ISRG X1.
  2. Скопируйте раздел «# DST Root CA X3» в каталог /etc/pki/ca-trust/источник/черный список в качестве файла pem
  3. запустите update-ca-trust
  4. Проверьте, что корень DST больше не находится в /etc/pki/tls/certs/ca-bundle.crt, а корень ISRG X1 находится в корне ISRG X1.

Комментарии:

1. Привет, спасибо за ответ. К сожалению, у меня нет каталога «/etc/pki». Какая еще информация вам понадобится для подтверждения причины?

2. какова ваша версия операционной системы?

3. Debian GNU/Linux 9 (stretch)

4. Чтобы удалить корень DST в Debian, вы можете запустить sudo dpkg-reconfigure ca-certificates и снять флажок DST в графическом интерфейсе. И вы можете прочитать /usr/поделиться/doc/ca-сертификаты/README. Debian для получения более подробной информации