Як зробити сторінку повністю безпечною через підключення SSL?
У цій публікації показано конфігурації, необхідні для роботи SSL (на порту 443) на серверах Ubuntu.
Однак для деяких сторінок (особливо старих дописів/сторінок) відображатиметься інформація «не повністю безпечна», якщо ви використовуєте браузер Chrome,
ssl-no-so-secure
Причини, як сказано, полягають у тому, що сторінка використовує деякі незахищені підключення до файлів зображень, 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-адресу сайту.
Налаштування панелі керування wordpress ssl
Крім того, ви можете зробити це через SQL:
UPDATE wp_options SET option_value = replace(option_value, '
Якщо ви розміщуєте кілька веб-сайтів/доменів на одній IP-адресі (VPS або виділений сервер)
Як ви можете бачити на наведених вище знімках екрана, якщо ви розміщуєте кілька веб-сайтів/доменів на одній IP-адресі та використовуєте ці зображення у своїх публікаціях, ви можете зробити ці домени також безпечними (придбавши нові сертифікати SSL) або зміна URL-адрес.
Для другого методу ви можете завантажити зображення/css/js і повторно завантажити в домен із підтримкою SSL, який ви використовуєте, або зіставити URL-адреси ресурсів без SSL із доменами з підтримкою SSL.
Наприклад, ви можете увійти на свій 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-адреси подвійними скісними рисками для кращої сумісності, тобто незалежно від того, який протокол використовується, ви завжди на правильному. Просто як це!
htaccess URL mod rewrite
Після повної перевірки ваших URL-адрес SSL вам слід перемістити попередні незахищені URL-адреси до SSL. Ви можете зробити це в .htaccess (apache server mod rewrite). Просто помістіть наступні два рядки в кореневу папку вашого веб-сайту, наприклад, блог wordpress.
Перенаправлення 301 повідомляє пошуковій системі, що рейтинг SEO поточної незахищеної URL-адреси має бути перенесений на SSL. Тепер почніть поширювати свій SSL замість незахищеного HTTP.