Я использую get_headers для проверки действительности URL-адреса.
https://central.bac-lac.gc.ca/.item/?app=Census1921&op=img&id=e002943819
Если я введу этот URL-адрес в свой браузер, он заработает. Но если я хочу протестировать URL-адрес ПЕРЕД тем, как вставить его в тег, передав его в get_headers, это не удастся.
Предупреждение: get_headers (): операция SSL завершилась неудачно с кодом 1. Сообщения об ошибках OpenSSL: ошибка: 1416F086: процедуры SSL: tls_process_server_certificate: проверка сертификата не удалась в /home/jamescobban/public_html/DisplayImage.php в строке 186
Предупреждение: get_headers (): не удалось включить шифрование в /home/jamescobban/public_html/DisplayImage.php в строке 186
Предупреждение: get_headers (https://central.bac-lac.gc.ca/.item/?app=Census1921&op=img&id=e002943819): не удалось открыть поток: не удалось выполнить операцию в /home/jamescobban/public_html/DisplayImage.php в строке 186
Поэтому мой код выдает сообщение об ошибке вместо того, чтобы вставлять URL-адрес в тег.
Сравните это с https://www.jamescobban.net/DisplayImage.php?src=https%3A%2F%2Fdata2.collectionscanada.ca%2F1911%2Fjpg%2Fe001984006.jpg&buttonname=imageButton&lang=en, который is администрируется тем же отделом, но на другом сервере. Поскольку ответ представляет собой не что иное, как JPEG, я спросил их, почему они добавили сложность запуска сценария, но они являются ПРАВИТЕЛЬСТВОМ и не должны отвечать простым налогоплательщикам. К счастью, на данный момент они не удалили старые серверы, на которых просто хранились изображения, но этот режим доступа недоступен для последней опубликованной переписи. Как видите, единственная цель моего сценария - добавить оболочку вокруг JPEG, чтобы пользователь мог выполнять некоторые операции с изображением.
Я подозреваю, что проблема в том, что на этом веб-сайте ПРАВИТЕЛЬСТВА используется сертификат с истекшим сроком действия. Я сообщил, что обнаружил эту проблему в отделе несколько месяцев назад, но они под предлогом COVID сидят на задних лапах, хотя, очевидно, их веб-сайт важнее, чем когда-либо в наши дни, когда мы не можем войти в их офис!
Как я могу убедить get_headers игнорировать плохой сертификат так же, как это делают браузеры? В конце концов, это не значит, что я не доверяю тому, что домен, заканчивающийся на .gc.ca, законно предоставлен правительством, но по соображениям конфиденциальности все же желательно зашифровать мои обмены данными с любым государственным учреждением.
Предложение отключить проверку безопасности недопустимо. Я просто хочу, чтобы get_headers сообщал мне, можно ли использовать URL-адрес в теге, чтобы я не получал сообщение об ошибке по умолчанию от браузера.
Если вы хотите увидеть код, вызывающий get_header, перейдите на https://github.com/jcobban/Genealogy/blob/master/DisplayImage.php