PHP Curl-соединение отказано в самозаверяющем сертификате Localhost

#php #ssl #curl #self-signed-certificate

#php #ssl #curl #самозаверяющий сертификат

Вопрос:

У меня есть два локальных сервера на localhost (настроенных как контейнеры docker за прокси-сервером nginx), и я хотел бы использовать CURL на сервере A для использования API сервера B. Все они используют SSL с самозаверяющими сертификатами (также уже настроенными).

     curl_setopt($request, CURLOPT_CAINFO, __DIR__ . '/../' . getenv('SERVER_B_CA_CERT'));
    curl_setopt($request, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
    curl_setopt($request, CURLOPT_SSL_VERIFYPEER, getenv('CURL_SSL_VERIFYPEER'));
    curl_setopt($request, CURLOPT_SSL_VERIFYHOST, getenv('CURL_SSL_VERIFYHOST'));
  

CURLOPT_SSL_VERIFYHOST и CURLOPT_SSL_VERIFYPEER имеют значение false.

Я получаю сообщение «отказано в соединении» (curl error code 7) из библиотеки curl PHP. Между моими контейнерами нет брандмауэров, и мой прокси-сервер nginx, похоже, настроен правильно. Сервер включен и прослушивает, потому что я смог подключиться к нему с помощью веб-браузера и клиента curl.

Есть идеи?

Редактировать:

 php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "*   Trying 127.0.0.1..."
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "* TCP_NODELAY set"
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "* connect to 127.0.0.1 port 443 failed: Connection refused"
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "*   Trying ::1..."
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "* TCP_NODELAY set"
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "* Immediate connect fail for ::1: Cannot assign requested address"
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "*   Trying ::1..."
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "* TCP_NODELAY set"
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "* Immediate connect fail for ::1: Cannot assign requested address"
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "* Failed to connect to server-b.local.com port 443: Connection refused"
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "* Closing connection 0"
php_1       | [05-Mar-2019 22:49:40] WARNING: [pool www] child 66 said into stderr: "NOTICE: PHP message: CURL ERROR = Failed to connect to server-b.local.com port 443: Connection refused, CODE = 7"
  

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

1. Возможно, это могло бы помочь: paragonie.com/blog/2017/10 /…