0. Установка git и bc если не установлены раннее
sudo yum -y install git bc
1. Клонированию проекта letsencrypt из GitHub.
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
2. Получение сертификата
Переходим к проекту Letsencrypt, куда мы клонировали файлы. И запускаем генерацию сертификатов командой letsencrypt-auto certonly, используя плагин webroot.
cd /opt/letsencrypt
./letsencrypt-auto certonly -a webroot --webroot-path=/web/path -d domen.com -d www.domen.com
Если все прошло успешно, тогда в консоли вы должны увидеть примерно это:
/etc/letsencrypt/live/domen.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domen.com/privkey.pem
IMPORTANT NOTES:
- If you lose your account credentials, you can recover through
e-mails sent to sammy@digitalocean.com
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your
cert will expire on 2016-03-15. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
- Your account credentials have been saved in your Let's Encrypt
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Let's
Encrypt so making regular backups of this folder is ideal.
- If like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Если вы получили ошибки, типа: Failed to connect to host for DVSNI challenge, настройте firewall вашего сервера, что бы TCP трафик проходил по портам 80 и 443.
3. Настройка TLS/SSl на веб-сервере Nginx
NGINX:
ssl_certificate "/etc/letsencrypt/live/domen.com/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/domen.com/privkey.pem";
ssl_trusted_certificate "/etc/letsencrypt/live/domen.com/fullchain.pem";
APACHE:
SSLCertificateFile /etc/letsencrypt/live/domen.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domen.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domen.com/chain.pem
4. Перезапуск Nginx или Apache
service nginx restart && service php-fpm restart
service httpd restart
5. Настройка автопродления
Сертификаты действительный 90 дней, но рекомендуется продлевать сертификаты каждые 60 дней. Мы это автоматизируем с помощью cron.
Чтобы запустить процесс обновления для всех установленных доменов, выполните следующую команду:
/opt/letsencrypt/letsencrypt-auto renew
Так как мы недавно установили сертификат, то команда будет проверять только дату истечения срока действия и распечатает сообщение, информирующее о том, что сертификат не нуждается в продлении. Вы увидите примерно следующие в консоли:
Checking for new version...
Requesting root privileges to run letsencrypt...
/root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/example.com.conf
The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.
Обратите внимание, что если вы создали сертификат в комплекте с несколькими доменами, тогда только базовое имя домена будет отображено в консоли, но вы не пугайтесь, продлены будут все домены, включенные в этот сертификат.
6. Редактируем crontab, что бы наши сертификаты обновлялись автоматически. Проверку на обновления мы будем делать каждую неделю.
Для редактирования crontab от root пользователя выполните команду:
sudo crontab -e
Добавим следующие строки:
30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
35 2 * * 1 /usr/bin/systemctl reload nginx
Этак команда создаст cron, который каждый понедельник будет выполнять автоматическое продление letsencrypt сертификатов в 2:30 и перезагружать Nginx в 2:35. Вся информация об обновлении будет логироваться в /var/log/le-renew.log.
1 Комментарии