Как узнать сайт на SSL или нет на SSL? Я работаю над плагином WP для прямых транзакций, и важно, чтобы плагин проверял, что сайт (на котором установлен плагин) использует SSL или нет. & Мне нужно показать предупреждающее сообщение на странице проверки, если сайт не на SSL.Как найти сертификат SSL установлен на сервере? (С использованием PHP)
ответ
Вы можете проверить переменную $_SERVER['HTTPS']
.
Если это HTTPS-запрос, значение «HTTPS» в суперглобальном массиве $ _SERVER будет установлено и будет установлено на «on». Если это не запрос HTTPS, он не будет установлен.
Так, чтобы проверить если это запрос HTTPS в PHP вы можете сделать это:
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
...
}
В качестве альтернативы вы можете установить его в качестве постоянной, если вам нужно знать, если это запрос на HTTPS несколько раз в вашем коде как так:
define('IS_HTTPS_REQUEST', isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on');
@ Лекс. Это в основном то, как скрипт запрашивается через Протокол HTTPS. Если скрипт запрашивается HTTPS, тогда устанавливается $ _SERVER ['HTTPS'] и равен 'on'. Но я пытаюсь понять, что SSL установлен на сервере, где находится сайт.Я нашел php-скрипт http://uniapple.net/blog/?p=539#comment-2705, и я тестировал, но не уверен, что он работает во всех аспектах? Спасибо –
Код, на который вы ссылаетесь, - это завиток, который может быть недоступен в общедоступном хостинге проверьте этот http://stackoverflow.com/questions/9852937/php-curl-proxy-not-work-with-godaddy-shared-hosting и код, который я дал вам, когда вы подключаете плагин и запускаете его отвечая на запросы, вы можете попросить wordpress указать ssl url и показать предупреждение о том, что ваш плагин не будет работать, если ssl не существует, и если запрос пришел без ssl (проверьте, используя вышеприведенный код), отобразите сообщение об ошибке –
function is_exist_ssl($domain){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://".$domain);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
if(!curl_error($ch)){
$info = curl_getinfo($ch);
if($info['http_code'] == 200){
return true;
}
return false;
}else{
return false;
}
}
использование:
$domain = 'uniapple.net';
if(is_exist_ssl($domain)){
echo "SSL is enabled!";
}else{
echo "No SSL";
}
//usage ::
if(!isset($_SERVER['REDIRECT_HTTPS']) || $_SERVER['REDIRECT_HTTPS'] != 'on'){
if(is_exist_ssl($domain)){
header('location : https://'.$domain);
}
}
Существует ряд решений этой проблемы, описанных в this question. Если вы используете Apache Httpd и можете сузить путь до определенного префикса, вы можете использовать SSLRequireSSL
в директиве Location
. Кроме того, вы можете проверить $_SERVER['HTTPS']
на PHP, если он определен (это может зависеть от веб-сервера, но обычно это так).
Что еще более важно, не сосредотачивайтесь на проверке страницы, которую вы обслуживаете, через HTTPS. Клиент должен проверить это, потому что к моменту, когда он достигнет сервера, уже слишком поздно: он может быть уже перехвачен злоумышленником MITM (кто может даже сделать запрос по HTTPS, даже если подлинный клиент сделал не). Я подробно объяснил эту проблему в this answer. С точки зрения пользовательского интерфейса вы должны четко указать, что пользователь войдет в «безопасный» раздел, и все зависит от них, чтобы проверить, что последующие запросы будут превышать HTTPS.
Не обязательно плохо проверять, что ваш сервер действительно работает через HTTPS, но с точки зрения безопасности это не очень помогает. Что действительно важно, так это то, что все ссылки на этот безопасный раздел должны использовать https://
(и не должны полагаться на автоматическое переписывание URL-адресов, чтобы сделать это).
Поскольку этот вопрос старый, и ответы немного устарели, я думал, что буду звонить!
Я видел, что вы спрашивали о плагине WordPress. WordPress имеет функцию is_ssl(), чтобы проверить, использует ли страница ssl с WordPress 2.6.
- 1. SSL-сертификат не установлен
- 2. PHP SSL SSL-сертификат
- 3. Apache обратный прокси установлен SSL-сертификат
- 4. Как проверить, установлен ли сертификат ssl?
- 5. Tomcat не отвечает, когда установлен сертификат SSL
- 6. SSL-сертификат с PHP CURL
- 7. Как принять сертификат SSL с использованием селена?
- 8. Включение SSL на сервере Tomcat с использованием SSL-сертификата, закрытого ключа и SSLCertificateChain СЕРТИФИКАТ
- 9. Сертификат самооценки на почтовом сервере
- 10. Сертификат SSL
- 11. Проблема с сертификатом на сертификат SSL SSL
- 12. PHP-сертификат клиента SSL-сокета
- 13. PHP Ebay SDK SSL-сертификат
- 14. SSL-серверный сертификат на клиентском компьютере?
- 15. PHP PhantomJS игнорирует сертификат SSL
- 16. Установить сертификат SSL при запросе, сгенерированном на другом сервере
- 17. SSL-сертификат на Heroku
- 18. Сертификат SSL на NginX
- 19. SSL-сертификаты на сервере tomcat
- 20. Как проверить, существует ли ssl на веб-сервере через php?
- 21. SSL-сертификаты на сервере Tomcat
- 22. Как установить сертификат ssl для push-уведомления?
- 23. SSL-сертификат
- 24. HWIOAuthBundle - SSL сертификат на ОС Windows
- 25. Как узнать, установлен ли сертификат SSL для подстановочного знака
- 26. Платный сертификат SSL vs Бесплатный SSL-сертификат
- 27. обновить сертификат SSL на IIS6?
- 28. Изменяет ли SSL-сертификат на сервере код прерывания?
- 29. SSL-сертификат для клиента
- 30. Получить сертификат SSL/TLS на сервере Amazon EC2
Я думаю, что этот вопрос связан с http://stackoverflow.com/questions/4503135/php-get-site-url-protocol-http-vs-https –
Это в основном то, как скрипт запрашивается по протоколу HTTPS, Если скрипт запрошен HTTPS, тогда $ _SERVER ['HTTPS'] установлен и равен 'on'. Но я пытаюсь понять, что SSL установлен на сервере, где находится сайт. Я нашел php-скрипт http://uniapple.net/blog/?p=539#comment-2705, и я протестировал, но не уверен, что он работает во всех аспектах? Спасибо –