curl не может получить локальный сертификат на Ubuntu

Я использую Ubuntu 14.04 64bit с рабочим столом Unity. Это полностью обновленная установка с последней версией CA-сертификатов и последней доступной версией Firefox.

На днях я пытался скачать что-то с сайта Харпера и заметил, что Керл жалуется на сертификат.

Если я выполню эту команду:

curl -v https://harpers.org/wp-content/themes/harpers/images/logoBlack.png

я получу следующий вывод:

  * Hostname was NOT found in DNS cache
  *   Trying 54.243.234.21...
  * Connected to harpers.org (54.243.234.21) port 443 (#0)
  * successfully set certificate verify locations:
  *   CAfile: none
    CApath: /etc/ssl/certs
  * SSLv3, TLS handshake, Client hello (1):
  * SSLv3, TLS handshake, Server hello (2):
  * SSLv3, TLS handshake, CERT (11):
  * SSLv3, TLS alert, Server hello (2):
  * SSL certificate problem: unable to get local issuer certificate
  * Closing connection 0
  curl: (60) SSL certificate problem: unable to get local issuer certificate

Это глупо, поскольку сертификат Харпера выдается DigiCert и Firefox поставляется с этим сертификатом.

Certificate Screenshot

Так что я сделал это вручную, просто чтобы посмотреть, работает ли он:

  cd /tmp/
  wget https://www.digicert.com/CACerts/DigiCertGlobalRootCA.crt
  openssl x509 -in DigiCertGlobalRootCA.crt -inform DER -out DigiCertGlobalRootCA.pem -outform PEM

  wget https://www.digicert.com/CACerts/DigiCertSHA2SecureServerCA.crt
  openssl x509 -in DigiCertSHA2SecureServerCA.crt -inform DER -out DigiCertSHA2SecureServerCA.pem -outform PEM

  cat DigiCertGlobalRootCA.pem >> DigiCertGlobalRootCASHA2SecureServerCA.pem
  cat DigiCertSHA2SecureServerCA.pem >> DigiCertGlobalRootCASHA2SecureServerCA.pem

  curl -v --cacert DigiCertGlobalRootCASHA2SecureServerCA.pem \
       https://harpers.org/wp-content/themes/harpers/images/logoBlack.png \
       -o logoBlack.png 2> down.log

И получил это:

[ 113]

Есть предложения?

0
задан 29 May 2017 в 23:24

1 ответ

Это решает проблему

  wget -P /tmp/ -nv https://www.digicert.com/CACerts/DigiCertSHA2SecureServerCA.crt
  openssl x509 -in /tmp/DigiCertSHA2SecureServerCA.crt -inform DER \
               -out /tmp/DigiCertSHA2SecureServerCA.pem -outform PEM
  sudo cp -uv /tmp/DigiCertSHA2SecureServerCA.pem /etc/ssl/certs
  sudo c_rehash
0
ответ дан 30 May 2017 в 09:24

Другие вопросы по тегам:

Похожие вопросы: