РЕДАКТИРОВАТЬ В данный момент я нахожусь в движении, и у меня есть только SO в приложении Stack Exchange на моем iPhone, поэтому есть странное форматирование с цитатами в коде ниже - Извинения!У меня есть реальные в реальном коде:)
Я пытался выяснить это в течение двух дней с некоторыми другими вопросами по SO, но здесь идет ...
Просто пытаюсьиспользуйте file_get_contents()
для захвата веб-страницы другого файла, расположенного на том же сервере и в том же домене, и включите его.Я использую MAMP с самозаверяющим сертификатом для производства (чтобы у меня мог быть сервер с SSL и т. Д.), Так что есть, и у меня также есть этот сертификат как «Всегда доверенный» локально на моем Mac, поскольку он самозаверяющий, очевидно.
Так что теперь у меня возникла проблема, когда я хочу, чтобы одна страница захватывала содержимое другой ... Сначала я попытался использовать cURL, но он не работал без каких-либо исключений и никакой информации с использованием curl_error()
, поэтому я переключилсяна file_get_contents()
, где я получаю исключение SSL operation failed with code 1
... ssl3_get_server_certificate:certificate verify failed
Я предполагаю, что это связано с тем, что OpenSSL не доверяет самоподписанному (но я думал, что он использовал доверенные CA изоперационной системы?) и я не могу заставить его работать, используя следующий потоковый контекст:
stream_context_create([
"ssl" => [
"allow_self_signed" => true
]
]);
И если я установлю verify_peer
и verify_peer_name
в false, запрос будет выполнен, но файлы cookie HTTPS не будутне отправлено, что нарушает все это.
Я попытался добавить фактический текст сертификата в файл cacert.pem
в каталоге OpenSSL в MAMP и установить этот файл в параметре openssl.cafile
в файле php.ini
, как указано в другом ответе, но, увы, не повезло ...
Есть идеи?Ваша помощь будет высоко ценится!Спасибо!10
РЕДАКТИРОВАТЬ 2 Так что я попробовал это снова, используя cURL, и на этот раз получил cURL, чтобы дать мне подробный вывод в файл, и это то, что он дает мне (обратите внимание на строкутретий снизу):
* Trying ::1...
* TCP_NODELAY set
* Connected to admin.voyagerisc (::1) port 8890 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /Applications/MAMP/Library/OpenSSL/certs/cacert.pem CApath: none
* SSL certificate problem: unable to get local issuer certificate
* Curl_http_done: called premature == 1
* Closing connection 0
... и это файл, в который я добавил необработанный сертификат вверху ... тьфу, STUCK!