Информация о системе
- Win 10 Pro x64
- PHP 7.3.10 x64 TS
- HTTPD 2.4.34
IВы следовали этому руководству для генерации необходимых ключей и файлов сертификатов.
Как разрешить HTTPS для Apache на локальном хосте?
httpd.conf
LoadModule ssl_module modules/mod_ssl.so
extra / vhosts.conf
<IfModule ssl_module>
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile "${CONF_PATH}/certs/localhost.cert"
SSLCertificateKeyFile "${CONF_PATH}/certs/localhost.key"
...
</VirtualHost>
</IfModule>
php.ini
extension=openssl
[curl]
curl.cainfo="C:\bin\httpd\conf\certs\localhost.cert"
[openssl]
openssl.cafile="C:\bin\httpd\conf\certs\localhost.cert"
Обычно люди говорят, что нужно скопировать libeay32
и ssleay32
, но простозадокументируйте это для всех остальных, это больше не файлы, включенные в последние сборки. Они libcrypto
и libssh
сейчас. Я скопировал их в директорию Apache bin.
Переход на страницу с phpinfo()
подтверждает эти настройки, а SSL помечен как включенный.
Давайте сделаем несколько запросов HTTPS.
pecl update-channels
Updating channel "doc.php.net"
Channel "doc.php.net" is up to date
Updating channel "pear.php.net"
Channel "pear.php.net" is not responding over http://, failed with message: Connection to `ssl://pear.php.net:443' failed: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?
Trying channel "pear.php.net" over https:// instead
Cannot retrieve channel.xml for channel "pear.php.net" (Connection to `ssl://pear.php.net:443' failed: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?)
Updating channel "pecl.php.net"
Channel "pecl.php.net" is up to date
Ну, это не хорошо. Я видел несколько предложений по удалению флага -n
из сценария PECL. Я так и сделал. Давайте посмотрим, будет ли это по-другому.
pecl update-channels
Updating channel "doc.php.net"
Channel "doc.php.net" is up to date
Updating channel "pear.php.net"
Channel "pear.php.net" is not responding over http://, failed with message: Connection to `ssl://pear.php.net:443' failed:
Trying channel "pear.php.net" over https:// instead
Cannot retrieve channel.xml for channel "pear.php.net" (Connection to `ssl://pear.php.net:443' failed: )
Updating channel "pecl.php.net"
Channel "pecl.php.net" is up to date
Нет, это на самом деле хуже. Теперь есть только меньше деталей о том, почему это терпит неудачу.
У кого-нибудь есть какая-то дополнительная информация, которую я пропускаю здесь, почему у меня нет успеха?