Бесплатный ssl сертификат для вашего сайта

В данной статье мы рассмотрим как заказать и настроить бесплатный ssl сертификат для домена вашего сайта.
Данную услугу предоставляет сервис letsencrypt.org
Данный сервис выдает бесплатный ssl сертификат для домена сроком на 3 месяца, так же сервис позволяет обновить сертификат спустя месяц всего одной командой. Данную операцию можно добавить в cron и в итоге получить бесплатный ssl сертификат для домена.

Итак, приступим.

1. Устанавливаем git

для Debian / Ubuntu

apt-get install git


для CentOS

yum install git


2. Качаем скрипты letsencrypt

git clone https://github.com/letsencrypt/letsencrypt


переходим в директорию letsencrypt

cd letsencrypt


3. Запускаем скрипт генерации сертификата и проверки домена:

./letsencrypt-auto --agree-dev-preview --server \https://acme-v01.api.letsencrypt.org/directory -a manual auth


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

На последнем этапе скрипт потребует валидацию домена

бесплатный ssl сертификат

нужно будет создать файл
http://domen.ru/.well-known/acme-challenge/CX6sMneAd5fDddC8lInuw1TPKzw3r6v2clkS4BU

и записать в него CX6sMneAd5fDddC8lInuw1TPKzHx3r6v2clkS4BU.henBYbMB4SCKck-1CYPb4irxo3gE_q-JtaBImh9CQ9k

как предлагает скрипт (второй вариант предлагает выполнение python скрипта на сервере).

После этого жмем ввод — Press Enter to Continue
и должны получить следующее:
создание ssl сертификата бесплатно

Файлы сертификата созданы и размещены по адресу:
/etc/letsencrypt/live/domain.ru/

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

cert.pem (сертификат сервера)
Используется Apache для SSLCertificateFile.

chain.pem (сертификат цепочки)
Он же используется Apache для SSLCertificateChainFile.

fullchain.pem (соединение chain.pem и cert.pem)
Он же используется nginx для ssl_certificate.

Полные пути на эти файлы нужно будет указывать в конфигурационных файлах вебсерверов Apache, nginx.

4. Автоматическое обновление сертификата через 2 месяца можно настроить в cron.

Открываем планировщик cron

crontab -e


Добавляем в самый конец файла задачу и сохраняем:

0 10 2 */2 * /root/letsencrypt/letsencrypt-auto renew
0 11 2 */2 * /etc/init.d/nginx reload


SSL сертификат создан и настроено его автоматическое обновление.

P.S.
Для подключения ssl сертификата к домену в nginx нужно добавить новую секцию server и выполнить рестарт nginx.

Пример:

server {
listen 443;
ssl on;
ssl_certificate /etc/letsencrypt/live/domain.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.ru/privkey.pem;

server_name your.domain.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
root /home/www/public_html/your.domain.com/public/;
index index.html;
}
}


Для Apache нужно для домена в секции Virtualhost указать следующее:

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domain.ru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.ru/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain.ru/chain.pem


Если требуется что бы домен открывался по защищенному соединению и нет то нужно сделать две секции Virtualhost для 80 и 443 портов соответственно.

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.