Бесплатный ssl сертификат для вашего сайта
В данной статье мы рассмотрим как заказать и настроить бесплатный ssl сертификат для домена вашего сайта.
Данную услугу предоставляет сервис letsencrypt.org
Данный сервис выдает бесплатный ssl сертификат для домена сроком на 3 месяца, так же сервис позволяет обновить сертификат спустя месяц всего одной командой. Данную операцию можно добавить в cron и в итоге получить бесплатный ssl сертификат для домена.
Итак, приступим.
1. Устанавливаем git
для Debian / Ubuntu
для CentOS
2. Качаем скрипты letsencrypt
переходим в директорию letsencrypt
3. Запускаем скрипт генерации сертификата и проверки домена:
Скрипт будет задавать вопросы на которые нужно отвечать утвердительно, так же скрипт запросит адрес почтового ящика для восстановления доступа к сервису в будущем (на ящик будет отправлено письмо с ссылкой валидации ящика) и домен для которого нужно сделать сертификат.
На последнем этапе скрипт потребует валидацию домена

нужно будет создать файл
и записать в него CX6sMneAd5fDddC8lInuw1TPKzHx3r6v2clkS4BU.henBYbMB4SCKck-1CYPb4irxo3gE_q-JtaBImh9CQ9k
как предлагает скрипт (второй вариант предлагает выполнение python скрипта на сервере).
После этого жмем ввод — Press Enter to Continue
и должны получить следующее:

Файлы сертификата созданы и размещены по адресу:
/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
Добавляем в самый конец файла задачу и сохраняем:
SSL сертификат создан и настроено его автоматическое обновление.
P.S.
Для подключения ssl сертификата к домену в nginx нужно добавить новую секцию server и выполнить рестарт nginx.
Пример:
Для Apache нужно для домена в секции Virtualhost указать следующее:
Если требуется что бы домен открывался по защищенному соединению и нет то нужно сделать две секции Virtualhost для 80 и 443 портов соответственно.
Данную услугу предоставляет сервис 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
Скрипт будет задавать вопросы на которые нужно отвечать утвердительно, так же скрипт запросит адрес почтового ящика для восстановления доступа к сервису в будущем (на ящик будет отправлено письмо с ссылкой валидации ящика) и домен для которого нужно сделать сертификат.
На последнем этапе скрипт потребует валидацию домена

нужно будет создать файл
http://domen.ru/.well-known/acme-challenge/CX6sMneAd5fDddC8lInuw1TPKzw3r6v2clkS4BU
и записать в него CX6sMneAd5fDddC8lInuw1TPKzHx3r6v2clkS4BU.henBYbMB4SCKck-1CYPb4irxo3gE_q-JtaBImh9CQ9k
как предлагает скрипт (второй вариант предлагает выполнение python скрипта на сервере).
После этого жмем ввод — Press Enter to Continue
и должны получить следующее:

Файлы сертификата созданы и размещены по адресу:
/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
- 13 июня 2017, 21:26
- GreatAlex
Комментарии (0)
RSS свернуть / развернуть