Как сделать страницу полностью защищенной через SSL-соединения?
В этом посте показаны конфигурации, необходимые для работы SSL (на порту 443) на серверах Ubuntu.
Однако для некоторых страниц (особенно старых сообщений/страниц) будет отображаться «не полностью безопасная» информация, если вы используете браузер Chrome,
ssl-не очень безопасный
Причина, как говорится, заключается в том, что страница использует некоторые незащищенные соединения с изображениями, файлами css или javascript. Если вы перейдете на https://www.whynopadlock.com/ (онлайн-инструмент проверки SSL), вы сможете увидеть подробные причины, по которым эта страница не полностью безопасна.
Инструмент проверки SSL
Кроме того, вы можете перейти в консоль браузера Chrome, и вы увидите предупреждения в деталях.
Сведения/подключения SSL в консоли браузера Google Chrome
Если мы не сделаем эти ресурсы изображений/js/css SSL, тогда кто-то может/может изменить внешний вид веб-сайта, что сделает использование SSL бессмысленным.
Кроме того, если вы используете HTML -тег iframe для включения страниц, они также должны использовать HTTPS, иначе это будет заблокировано большинством браузеров из-за потенциальных угроз безопасности.
Кроме того, если у вас есть формы с небезопасными URL-адресами (поле действия ), вы все равно будете получать предупреждения. Например, вы должны использовать SSL-версию формы поиска Google вместо версии без SSL.
Если ресурсы размещены в другом домене
Делать особо нечего, если ресурсы размещены на других доменах. В этом случае вы можете использовать версии HTTPS, если они есть, но это не всегда возможно. У крупных компаний есть как HTTP, так и HTTPS версии, например, Google. Если нет, вы можете загрузить копию и загрузить ее на свой собственный FTP и, таким образом, изменить безопасный URL-адрес.
SQL для изменения URL-адреса сообщений WordPress
Если вы используете WordPress, вы можете использовать следующий URL-адрес, чтобы изменить URL-адреса в сообщении.
UPDATE wp_posts SET post_content = REPLACE (post_content, '
Следующее также изменяет GUID для каждого сообщения.
UPDATE wp_posts SET guid = REPLACE (guid, '
И вы должны войти в панель управления WordPress, чтобы обновить URL-адрес сайта.
настройки панели управления ssl вордпресс
Кроме того, вы можете сделать это через SQL:
UPDATE wp_options SET option_value = replace(option_value, '
Если вы размещаете несколько сайтов/доменов на одном IP-адресе (VPS или выделенный сервер)
Как вы можете видеть на приведенных выше снимках экрана, если вы размещаете несколько веб-сайтов/доменов на одном и том же IP-адресе и используете эти изображения в своих сообщениях, вы можете либо сделать эти домены безопасными (приобрести новые SSL-сертификаты), либо изменение URL-адресов.
Для второго метода вы можете загрузить images/css/js и повторно загрузить в домен SSL-ed, который вы используете, или вы можете сопоставить URL-адреса ресурсов без SSL с доменами SSL-ed.
Например, вы можете войти на свой VPS или выделенный сервер и сделать символическую ссылку (аналог ярлыков в Windows).
ln -s /var/non-ssl-domains/images /var/ssl-domain/images
Затем вы можете заменить http://non-ssl-domains/images на https://ssl-domain/images, используя приведенный выше SQL.
Иногда сервер Apache не следует за символическими ссылками, и в этом случае вы, конечно, можете вместо этого сделать жесткие ссылки (без опции -s).
ln /var/non-ssl-domains/images /var/ssl-domain/images
Использование PHP для перенаправления незащищенных URL-адресов на безопасный SSL
Другим решением является создание файла PHP на основе параметров $_GET URL-адресов и чтение файлов ресурсов из другого домена, поскольку все они размещены на одном компьютере (VPS или выделенный сервер).
function hell() {
header($_SERVER['SERVER_PROTOCOL']. ' 404 Not Found');
die();
}
$r = '';
if (isset($_GET['r'])) {
$r = trim($_GET['r']);
}
if (!strlen($r)) {
hell();
}
$url = '/var/www/codingforspeed.com/images/'.$r;
if (!is_file($url)) {
hell();
}
$ext = strtoupper(pathinfo($url, PATHINFO_EXTENSION));
$type = exif_imagetype($url);
if (($ext == 'JPG') && ($type == IMAGETYPE_JPEG)) {
header('Content-Disposition: inline');
header("Content-Type: image/jpeg");
header("Content-Length: ". filesize($url));
header("Content-Transfer-Encoding: binaryn");
$im = imagecreatefromjpeg($url);
imagejpeg($im);
imagedestroy($im);
die();
}
else if (($ext == 'GIF') && ($type == IMAGETYPE_GIF)) {
header('Content-Disposition: inline');
header("Content-Type: image/gif");
header("Content-Length: ". filesize($url));
header("Content-Transfer-Encoding: binaryn");
readfile($url);
die();
}
else if (($ext == 'PNG') && ($type == IMAGETYPE_PNG)) {
header('Content-Disposition: inline');
header("Content-Type: image/png");
header("Content-Length: ". filesize($url));
header("Content-Transfer-Encoding: binaryn");
$im = imagecreatefrompng($url);
imagepng($im);
imagedestroy($im);
die();
}
else if (($ext == 'BMP') && ($type == IMAGETYPE_BMP)) {
header('Content-Disposition: inline');
header("Content-Type: image/bmp");
header("Content-Length: ". filesize($url));
header("Content-Transfer-Encoding: binaryn");
$im = imagecreatefrombmp($url);
imagebmp($im);
imagedestroy($im);
die();
}
else {
hell();
}
Сохраните приведенный выше PHP-код под своим доменом SSL, например, https://helloacm.com/ssl, и сделайте его index.php.
Затем, например, если предыдущий незащищенный URL-адрес — https://codingforspeed.com/images/logo.png, то новый безопасный URL-адрес SSL — https://helloacm.com/ssl/?rlogo.png .
И соответственно замените URL-адреса в wordpress, используя приведенный выше SQL. Эти методы являются своего рода временными, поскольку, если у вас есть бюджеты, лучше сделать все ваши домены SSL.
Добро пожаловать в мир SSL! И в качестве награды некоторые поисковые системы (алгоритмы Google) предпочитают SSL-страницы незащищенным HTTP. Ваши SSL-страницы имеют тенденцию к лучшему SEO.
двойная косая черта URL
Иногда вы можете увидеть, что ‘ // helloacm.com/images/logo.png ‘. Двойная косая черта автоматически определит протокол текущей страницы. Если это HTTP, и он будет использовать HTTP, или если это HTTPS, то доступ к изображению будет осуществляться через HTTPS. Вы можете рассмотреть возможность замены всех URL-адресов двойными косыми чертами для лучшей совместимости, т.е. независимо от того, какой протокол используется, вы всегда используете правильный. Просто как тот!
Мод URL htaccess переписан
После того, как ваши URL-адреса SSL будут полностью протестированы, вы должны переместить свои предыдущие незащищенные URL-адреса в SSL. Вы можете сделать это в .htaccess (переписать мод сервера apache ). Просто поместите следующие две строки в корневую папку вашего веб-сайта, например блога WordPress.
Перенаправление 301 сообщает поисковой системе, что SEO-оценка текущего незащищенного URL-адреса должна быть перенесена на SSL-адрес. Теперь начните распространять свой SSL вместо незащищенного HTTP.