curl не может получить сертификат локального эмитента

Я отвечаю за веб-сервер под управлением apache, на котором размещено около 15 различных сайтов. Теперь один сайт должен взаимодействовать с другим, наши разработчики пытаются подключиться к нему через curl с помощью PHP. Это не работает. Я попытался отладить его в командной строке через:

curl --verbose https://deutsche-unterstuetzungskasse.de

И он выдает ошибку 60 (указанную в заголовке темы), что довольно странно для всех остальных страниц, на которых он работает.

Более подробно:

* About to connect() to deutsche-unterstuetzungskasse.de port 443 (#0)
*   Trying 195.244.228.197...
* connected
* Connected to deutsche-unterstuetzungskasse.de (195.244.228.197) 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
More details here: http://curl.haxx.se/docs/sslcerts.html
...

Все наши страницы оснащены как действующим сертификатом ssl, так и тем, который не работает. Единственная разница, похоже, в том, что у этого нет подстановочного сертификата. Если я установлю параметр curl - cacert /etc/ssl/certs/ca-certificates.crt, он будет работать нормально, но не решит проблему. Вот подробный вывод:

* About to connect() to deutsche-unterstuetzungskasse.de port 443 (#0)
*   Trying 195.244.228.197...
* connected
* Connected to deutsche-unterstuetzungskasse.de (195.244.228.197) port 443     (#0)
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using ECDHE-RSA-AES256-GCM-SHA384
* Server certificate:
*        subject: C=DE; postalCode=22303; ST=Hamburg; L=Hamburg; street=Barmbeker Stra�e 2-6; O=Cevo Systemhaus AG; OU=IT; CN=deutsche-unterstuetzungskasse.de
*        start date: 2017-10-19 00:00:00 GMT
*        expire date: 2019-01-17 23:59:59 GMT
*        subjectAltName: deutsche-unterstuetzungskasse.de matched
*        issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited; CN=COMODO RSA Organization Validation Secure Server CA
*        SSL certificate verify ok.
> GET / HTTP/1.1
> User-Agent: curl/7.26.0
> Host: deutsche-unterstuetzungskasse.de
> Accept: */*
> 
...

Кто-нибудь может мне помочь? Мои знания подошли к концу

РЕДАКТИРОВАТЬ:

Итак, я провел дополнительное исследование и нашел этот аккуратный тест SSL-сервера:

https://www.ssllabs.com/ssltest/analyze.html? d = deutsche-unterstuetzungskasse.de

Похоже, это показывает мою проблему. Каким-то образом сервер дает * c-core.de в качестве альтернативных имен во втором сертификате. Как я могу это исправить?

0
задан 29 November 2017 в 12:20
2 ответа

Мне удалось исправить эту проблему! Как заявил Саймон Гринвуд, это может иметь какое-то отношение к старому программному обеспечению, что имело место, но curl уже был актуальным. Я обновил Apache и openssl, что затем представило мне еще одну ошибку:

.. "процедуры сертификата: X509_STORE_add_cert: сертификат уже в хеш-таблице"

Я не мог найти много в Google или в другом месте, но где-то кто-то сказал, команда

c_rehash

может исправить это. И в конце концов это произошло! У меня все еще есть проблема с неправильными именами в сертификате, но, похоже, это больше не мешает скручиванию.

0
ответ дан 24 November 2019 в 03:36

Ny fanamarinana wildcard dia avy amin'ilay mpamoaka iray ihany ve? Amin'ny porofo dia toa tsy manana CA manan-kery ho an'ny Comodo ianao. Ao amin'ny fikirakira apache anao dia matetika ianao no manana setting an'ny SSLCert CertificateFile sy SSLCert CertificateChainFile ka zahao izany.

0
ответ дан 24 November 2019 в 03:36

Теги

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