Let’s Encrypt. Как бесплатно добавить SSL/TLS сертификат и HTTPS протокол на сайт, пошаговая инструкция

Let’s Encrypt – это некоммерческая организация, которая предоставляет бесплатный, полностью автоматизированный и открытый CA (certificate authority – центр сертификации) сертификат.

Имея такой бесплатный SSL/TLS сертификат вы сможете легко настроить шифрованный HTTPS протокол на своем сайте, тем самым защитит передачу данных между клиентом и сервером, а также повысить ранжирование в поисковых системах (google) и многое другое. Не говоря о красивом зеленом замке в начале вашего любимого домена.

Пошаговая инструкция по созданию бесплатного сертификата для HTTPS протокола от Let’s Encrypt

SSL

Устанавливаем клиент Let’s Encrypt на сервер

Подключаемся к серверу по SSH. И переходим, например, в домашнюю директорию:

В нее мы установим клиент Let’s Encrypt. Для этого нам понадобится git, если у вас на сервере уже установлен git, то просто выполните следующие команды:

Если у вас не установлен git, то либо установите его следующей командой:

Либо просто распакуйте zip архив из репозитория GitHub:

Проверяем:

В ответ вы увидите следующие:

SSL

Все, клиент Let’s Encrypt установлен.

Создаем SSL сертификат для HTTPS протокола на сайт

Перейдем к созданию сертификата Let’s Encrypt. Для этого сначала необходимо остановить nginx:

и запустить команду создания SSL сертификата:

В случае успешного создания сертификата для HTTPS протокола вы увидите примерно следующие

SSL

Не забудте поменять доменое имя devreadwrite.com на свое.

В процессе создания сертификата, вам предложат ввести e-mail, для важных сообщений и для восстановления ключа при необходимости. Далее нужно будет согласиться с лицензионным соглашением. Созданный SSL сертификат сертификат и вся цепочка сохранится по следующему пути:

/etc/letsencrypt/live/devreadwrite.com/

Файлы SSL сертификата

В /etc/letsencrypt/live/devreadwrite.com/ будут следующие файлы:

privkey.pem – приватный ключ для сертификата. В Apache он используется в директиве SSLCertificateKeyFile. В Nginx используется в директиве ssl_certificate_key.

cert.pem – сертификат сервера. Его требует директива Apache SSLCertificateFile.

chain.pem – связка всех сертификатов, которые обслуживаются браузером, за исключением cert.pem. Используется Apache SSLCertificateChainFile.

fullchain.pem – вся связка сертификатов (объединение chain.pem и cert.pem). Используется в Nginx для ssl_certificate.

Вот мы и получили сертификат. Не забудьте запустить Nginx:

Теперь мы можем подключить протокол HTTPS к сайту.

Настройка HTTPS (SSL/TLS) в Nginx

Откройте файл конфигурации Nginx для сайта (обычно это: /etc/nginx/vhosts/userName/) и добавьте следующие строки:

Далее необходимо перезапустить Nginx:

или

Nginx, 301 редирект с протокола http на https

Настройка HTTPS (SSL/TLS) в Apache

Откройте файл конфигурации Apache для сайта (обычно это: /etc/apache2/vhosts/userName/) и добавьте следующие строки:

В итоге получится что-то вроде:

Перезапускаем Apache:

301 редирект с протокола http на https в Apache

Добавьте следующий код в файл .htaccess вашего сайта:

Еще ридиректы в Apache: 301 редирект на все случаи жизни с помощью .htaccess.

Дополнительно

Для того чтобы получить зеленый замочек в адресной строке, который будет указывать пользователю что сайт правильно работает по протоколу HTTPS, необходимо все пути к подключаемым файлам (картинкам, css, js, …) поменять с http на https. Так же можно вместо http или https поставить два слеша (//). Например:

заменить на:

В таком случае файл будет получен по тому же протаколу в каком был запрошен сайт, в нашем случае https. Или же указать протокол явно.

По такому же принципу можно делать и ссылке на сайте.

Как продлить сертификат

Сертификат выдается на 3 месяца, поэтому за несколько дней до окончания его необходимо продлить.

Для продления сертификата необходимо выполнить команду:

Эту команду вы можете добавить в крон таб, для автоматического продления SSL сертификата.

Плюсы и минусы данного способа создания сертификата

Один и самый большой плюс данного способа – это создание сертификата без танцев с бубном. Существует множество других способов, но этот единственный, который заработал сразу.

Минус данного способа создания SSL сертификата заключается в том, что для создания сертификата необходимо остановит Nginx, следовательно сайты на Nginx во время создания сертификата не будут работать, это примерно 5-10 секунд (по крайней мере на моем сервере).

Результат

В результате мы получаем рабочий SSL сертификат и протокол HTTPS на сайте.

https

 

Источник: https://кодер.укр/%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8/let-s-encrypt-%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D1%8B%D0%B9-ssl-%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82-%D0%B8-https-%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB-%D0%BD%D0%B0-%D1%81%D0%B0%D0%B9%D1%82

Be the first to comment

Leave a Reply

Your email address will not be published.


*