Fopen принять самоподписанный сертификат

я хотел бы получить результат моей страницы в https в переменной php, но функция fopen возвращает false;

я думаю, что эта ошибка может быть продуктом ssl certifacte, который является самоподписанным

fopen("https://192.168.1.1:8443", "rb"))

Предупреждение: fopen (): сбой операции SSL с кодом 1. Сообщения об ошибках OpenSSL: ошибка: 14090086: подпрограммы SSL: SSL3_GET_SERVER_CERTIFICATE: сбой проверки сертификата

Конфигурация php ssl для принятия всех сертификатов?

5

Решение

увидеть Ошибка при загрузке внешнего XML-файла с php через https: SSL3_GET_SERVER_CERTIFICATE

Экспортируйте самозаверяющий сертификат в кодировке PEM и добавьте его в ca-bundle.crt (или, если еще нет ca-bundle.crt, просто переименуйте файл экспорта)

Тогда используйте

$context = stream_context_create(array('ssl'=>array(
'verify_peer' => true,
'cafile' => '/path/to/ca-bundle.crt'
)));
$fd = fopen("https://192.168.1.1:8443", "rb", false, $context);

увидеть Параметры контекста SSL а также stream_context_create

10

Другие решения

Проверь это — http://php.net/manual/en/function.stream-context-create.php

<?php
$opts=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);

$response = fopen("https://192.168.1.1:8443", 'rb', false, stream_context_create($opts));

echo $response; ?>
10

По вопросам рекламы [email protected]