Як додати HTTPS на свій веб-сайт безкоштовно за 10 хвилин, і чому це потрібно робити зараз більше, ніж ...

Минулого тижня Google оголосив, що Chrome 68, який з’явиться в липні, позначить усі сторінки HTTP як “Не захищені”.

Це найсильніший поштовх, який поки що стимулював Інтернет до шифрування за замовчуванням, і це вже давно.

Незважаючи на те, що існує маса доказів того, чому кожному слід стрибати на HTTPS, багато людей все ще не бачать цінності безпечного обслуговування своїх сайтів.

" Навіщо мені це для блогу ?"

Я вже писав про значення HTTPS, але ще раз повторю:

  • HTTPS захищає користувачів від атак Man In the Middle.
  • HTTPS необхідний для використання багатьох нових функцій у браузерах, таких як Service Workers
  • HTTPS впливає на SEO

Якщо ви не впевнені в цьому, прочитайте сторінку doesmysiteneedhttps.com, щоб отримати повне уявлення про те, чому кожен веб-сайт повинен безпечно обслуговуватися.

І якщо ви все ще не отримуєте цього, то життя ось-ось стане для вас набагато складнішим.

Намагаючись відвернути користувачів від небезпечних веб-сайтів, браузери ганьблять веб-сайти, які в певному контексті обслуговуються небезпечно.

Chrome 56 розпочав цю тенденцію, позначивши сторінки з конфіденційними полями входу як "Не захищені", тоді як Chrome 62 поширив це попередження на всі сторінки HTTP, які містять будь-який тип поля введення. Крім того, попередження відображається на всіх сторінках HTTP в режимі анонімного перегляду, незалежно від того, містять вони поле введення чи ні.

Firefox також попереджає користувачів, коли вони намагаються заповнити незахищену форму для входу.

Тепер Chrome вирішив розміщувати це попередження на всіх сторінках HTTP. Згодом піктограма поруч із міткою "Не захищено" зміниться, а текст стане червоним, щоб ще більше підкреслити, що сторінкам HTTP не можна довіряти.

Щоб користувачі не бачили цього попередження на вашому веб-сайті, потрібно лише отримати дійсний сертифікат SSL. Хороша новина полягає в тому, що робити це не так складно чи дорого, як раніше. Насправді я збираюся показати вам, як безкоштовно розгорнути HTTPS на своєму сайті за допомогою Cloudflare. І це взагалі не займе багато часу.

Чому Cloudflare?

CloudFlare може допомогти вам безкоштовно захистити SSL-сертифікат незалежно від того, яка інфраструктура на стороні сервера у вас є. Він також працює на сайтах, розміщених на платформах, які не забезпечують доступ до серверів, таких як GitHub Pages, Ghost та подібні.

Вам не потрібно нічого встановлювати або писати будь-який код. Це робить справді чудовим варіантом розміщення HTTPS на вашому веб-сайті, і час налаштування буквально повинен зайняти не більше 10 хвилин.

Він також надає безліч інших переваг у безпеці та роботі вашого веб-сайту, які я не збираюся тут висвітлювати. Але я трохи поговорю про те, як все це працює, щоб ви могли добре зрозуміти, як він вміє робити всі ці речі.

Як працює Cloudflare

Cloudflare знаходиться посеред посередництва відвідувачів вашого веб-сайту та вашого сервера. Відвідувачами можуть бути звичайні люди, сканери та боти (наприклад, боти пошукових систем) або хакери. Виконуючи роль посередника між вашим веб-сервером та відвідувачами вашого сайту, Cloudflare допомагає відфільтрувати весь незаконний трафік, щоб проходили лише хороші речі.

Зараз вам може бути цікаво, чи все це може негативно вплинути на швидкість вашого веб-сайту, але це прямо навпаки. Cloudflare має центри обробки даних по всій земній кулі, тому він просто використовуватиме найближчу до вашого відвідувача кінцеву точку, яка повинна зробити ваш сайт набагато швидшим, ніж був раніше.

Тепер, коли ми знаємо, як працює Cloudflare, давайте подивимось, як налаштувати веб-сайт на їхній інфраструктурі та як безкоштовно перейти на HTTPS. Тут основна увага буде приділятися функціям, які Cloudflare надає безкоштовно, але зауважте, що платні плани також доступні з купою додаткових функцій.

Налаштування нового сайту

Після реєстрації в Cloudflare першим ділом потрібно додати домен і відсканувати записи DNS.

Після завершення сканування відображатимуться всі записи DNS у домені. Ви можете вибрати піддомени, для яких потрібно ввімкнути Cloudflare, і внести будь-які бажані зміни. Коли будете готові, натисніть кнопку Продовжити, щоб перейти до наступного кроку.

Виберіть безкоштовний тариф і натисніть Продовжити.

Далі вам потрібно буде змінити сервери імен у реєстраторі домену на надані Cloudflare. Процес виконання цього на кожному реєстраторі доменів дещо відрізняється, тому зверніться до свого реєстратора доменів.

Ось як це виглядає в Namecheap:

Тепер вам слід почекати, поки зміни сервера імен закінчаться розповсюдженням. Натисніть на Перевірити сервери імен через деякий час, щоб побачити, чи ваш сайт зараз активний у Cloudflare. Це найдовша частина налаштування і може зайняти до 24 годин, але, на мій досвід, це зайняло менше 5 хвилин.

Щойно оновлення сервера імен будуть перевірені Cloudflare, ваш сайт стане активним у службі.

Якщо ви хочете бути абсолютно впевненими, що ваші налаштування DNS розповсюджуються скрізь, What My DNS надає спосіб перевірити, яку IP-адресу ваш домен визначає в різних місцях.

Ви також можете використовувати digабо nslookupв командному рядку для перевірки конфігурації DNS своїх доменів.

Таким чином, ви можете бути впевнені, що весь трафік, що надходить до вашого домену, тепер перенаправляється через Cloudflare.

Перш ніж приступати до налаштування Cloudflare, переконайтеся, що ваш браузер не використовує старі записи DNS зі свого кешу. У Chrome та Firefox це можна зробити, очистивши історію браузера.

Отримання SSL безкоштовно

SSL все ще є преміум-послугою, і багато органів сертифікації беруть значні суми перед тим, як видавати сертифікат SSL. Це не те, що ви можете просто безкоштовно отримати скрізь, але це швидко змінюється у галузі.

Тепер, коли Cloudflare сидить посеред вашого веб-трафіку, ви повинні автоматично отримати SSL у своєму домені. Це може зайняти до 24 годин, щоб сертифікат став активним, але, на мій досвід, це взагалі не займе багато часу.

Як тільки сертифікат стане активним, завантажте свій сайт у браузер. Ви повинні побачити сайт, який подається через HTTPS, і гарний зелений замок в адресному рядку.

Якщо ви переглянете додаткову інформацію про сертифікат, ви побачите орган сертифікації, який його видав (у моєму випадку - Comodo), і термін дії. Однією з чудових речей Cloudflare є те, що поновлення сертифіката виконується автоматично для вас, тому не турбуйтеся.

Різниця між гнучким, повним та повним (суворим) SSL

Cloudflare робить дуже простим отримання SSL на вашому сайті безкоштовно, не налаштовуючи нічого, але це не завжди те саме, що обслуговувати ваш сайт через SSL безпосередньо від джерела.

Існує три реалізації SSL Cloudflare. Перший, який ви отримуєте за замовчуванням, - це гнучкий SSL. У цьому випадку трафік зашифрований між користувачами вашого сайту та Cloudflare, але це шифрування не надходить аж до вихідного сервера. Cloudflare все ще розмовляє з вашим сервером через звичайний HTTP.

Це означає, що будь-яка людина посередині (наприклад, мережеві провайдери) між Cloudflare та вашим сервером може бачити трафік. Якщо ви збираєте конфіденційну інформацію на своєму веб-сайті, утримайтеся від використання цієї опції.

Для того, щоб мати шифрування аж до вихідного сервера, вам потрібно скористатися реалізацією Повне або Повне (Строге). Перший вимагає встановити дійсний сертифікат на своєму сервері, але справжність сертифіката не перевірятиметься, тому ви зможете пройти це за допомогою самопідписаного сертифіката. З іншого боку, повна (сувора) реалізація вимагає встановити дійсний сертифікат SSL, підписаний надійним Центром сертифікації.

Якщо ви не хочете купувати SSL у подібних Comodo, ви можете отримати безкоштовні сертифікати Origin CA від Cloudflare, які можна використовувати як з повним, так і з повним (суворим) параметрами, оскільки їм довіряє Cloudflare. Але майте на увазі, що цим сертифікатам довіряє лише Cloudflare, тому вони перестануть працювати, якщо ви вирішите відключити свій веб-сайт від інфраструктури Cloudflare.

Якщо ви не керуєте своїм серверним середовищем, скажімо, якщо ваш сайт розміщений на сторінках GitHub або подібних платформах, ви не зможете використовувати повні або повні (суворі) реалізації, що означає, навіть якщо ваші користувачі бачать HTTPS в адресному рядку, трафік не надходитиме до зашифрованого вихідного сервера.

Але це все-таки значне поліпшення порівняно з відсутністю HTTPS взагалі, оскільки це захистить ваших користувачів від того, щоб бути клієнтом серед людей.

Посилити впровадження SSL

Незалежно від того, яку SSL-версію ви вибрали, є способи її посилити, щоб переконатися, що користувачі ніколи не зможуть отримати доступ до вашого сайту через незахищений HTTP. Qualys SSL Labs - це інструмент, який допомагає провести тест на конфігурацію SSL, щоб побачити, чи є місце для вдосконалення.

Незважаючи на те, що я отримую оцінку A з мого домену, якщо ви детально вивчите результати, ви побачите, що напевно є місце для вдосконалення щодо обміну ключами та міцності шифру.

Давайте поглянемо на кілька речей, які ми можемо зробити в Cloudflare, щоб посилити наш SSL і отримати рейтинг ще вищим.

Сила HTTPS скрізь

Після того, як ви перейшли на HTTPS, ви точно хочете заборонити користувачам отримувати доступ до вашого сайту через незахищений зв’язок. Ви можете зробити це в Cloudflare, перенаправивши 301 весь HTTP-трафік на HTTPS.

У розділі Налаштування Crypto знайдіть опцію Завжди використовувати HTTPS та увімкніть її.

Увімкнути строгу транспортну безпеку HTTP (HSTS)

Раніше я писав про те, як HSTS зміцнює SSL ваших веб-сайтів, але давайте просто коротко про це ще раз.

Проблема лише з 301 перенаправленням HTTP-трафіку на HTTPS полягає в тому, що початковий небезпечний запит все ще надходить по дроту, що означає, що його може прочитати кожен, хто має доступ до трафіку.

HSTS - це заголовок відповіді, який усуває цю проблему, повідомляючи браузеру, що він не може надсилати незахищений запит на веб-сайт протягом певного періоду часу.

Ось як виглядає заголовок:

strict-transport-security: max-age=31536000

Після того, як браузер отримає цей заголовок, він не буде робити небезпечний запит на ваш сайт протягом наступних 31 536 000 секунд (на 1 рік). Натомість усі HTTP-запити будуть внутрішньо оновлені до HTTPS перед надсиланням через мережу.

Якщо ви хочете запобігти доступу всіх субдоменів через HTTP, вам знадобиться includeSubdomainsдиректива. Ви також можете додати preloadдирективу, яка дозволяє виробникам браузерів запікати ваш сайт у самому браузері як лише HTTPS.

strict-transport-security: max-age=31536000; includeSubdomains; preload

Після того, як ви увімкнули HSTS у своєму домені, ви можете бути впевнені, що коли хтось завантажить ваш веб-сайт через HTTPS, він надалі зможе отримати доступ до нього через безпечну схему.

Тому перед тим, як увімкнути HSTS на своєму сайті, переконайтеся, що весь ваш трафік буде обслуговуватися через HTTPS, інакше у вас виникнуть проблеми.

Щоб увімкнути це в Cloudflare, перейдіть до налаштувань Crypto та прокрутіть униз до розділу HTTP Strict Transport Security (HSTS) . Клацніть на Змінити налаштування HSTS, увімкніть усі відповідні параметри та натисніть Зберегти .

І на той випадок, якщо вам цікаво, підтримка HSTS у веб-переглядачі досить гарна.

Виправте посилання на небезпечні схеми

Якщо ви безпечно вбудуєте пасивний ресурс (наприклад, зображення) на захищену сторінку, браузер все одно завантажує його просто чудово. Він просто знімає зелений замок із адресного рядка. Ви можете побачити приклад цієї помилки тут.

Якщо ви перевірите консоль браузера, ви побачите деякі попередження або помилки, які вказують на ресурс, який був вбудований небезпечно. У цьому випадку це так

HTTP image

Щоб це виправити, просто змініть схему на HTTPS, і знову все буде добре.

HTTP image

Якщо у вас багато вмісту на вашому сайті, вкладеному небезпечно, пошук і виправлення кожного з них може бути досить нудним. Але Cloudflare може знову допомогти вам тут за допомогою функції автоматичного переписування HTTPS.

Щоб бути подвійним переконанням, що жоден вміст на вашому веб-сайті ніколи не може бути незахищеним для обслуговування, розгляньте можливість запровадження Політики захисту вмісту на своєму сайті.

Тепер давайте подивимося, як зазначені вище зміни вплинули на наш звіт "Лабораторії SSL". Я повторив тест на своєму домені, і тепер ми отримуємо рейтинг A +.

Якщо ви перевірите окремі рейтинги на графіку, нічого не змінилося, але ми все одно отримуємо по-справжньому безпечну реалізацію SSL безкоштовно і всього за кілька хвилин.

Альтернативи Cloudflare для безкоштовного SSL

Якщо ви віддаєте перевагу не використовувати Cloudflare з якихось причин, існують інші способи, як безкоштовно отримати веб-сайт на HTTPS. Ось два варіанти, які ви можете спробувати:

Давайте зашифруємо

Якщо ви маєте контроль над своїм сервером, ви можете швидко розгорнути HTTPS на своєму сайті за допомогою програми Let's Encrypt. Вони пропонують безкоштовні сертифікати SSL, які тривають три місяці і можуть бути поновлені автоматично.

Навіть якщо у вас немає доступу до сервера, зверніться до свого веб-хоста. Деякі хости дозволять вам використовувати Let's Encrypt SSL без надання доступу до оболонки.

Диспетчер сертифікатів Amazon AWS

Amazon також видає та автоматично поновлює сертифікати SSL для клієнтів на своїй інфраструктурі Amazon Web Services (AWS). Таким чином, ви можете встановити та забути HTTPS на своєму сайті, якщо ви використовуєте ресурси AWS, такі як Cloudfront.

Незалежно від того, як ви впроваджуєте HTTPS на своєму веб-сайті, найголовніше - переконатися, що ви налаштуєте якомога швидше, щоб ваші користувачі отримали переваги безпеки, які він надає, і ви не пропустили кілька цікавих функцій у браузерах, які допоможуть ви створюєте кращий веб-досвід.

Якщо вам сподобалась ця стаття, поділіться з іншими, хто може прочитати її. До речі, перевірте мій блог на Freshman.Tech для статей про веб-розробку. Дякуємо за читання.