Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
letsencrypt:letsencrypt [2018-10-22 19:37] GreyWolf [Certbot] |
letsencrypt:letsencrypt [2021-10-04 16:37] (текущий) GreyWolf [IdenTrust DST Root CA X3 2021-09-30] |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
Проект Let’s Encrypt создан для того, чтобы большая часть интернет-сайтов смогла перейти к шифрованным подключениям (HTTPS). В отличие от коммерческих центров сертификации, в данном проекте не требуется оплата, переконфигурация веб-серверов, использование электронной почты, обработка просроченных сертификатов, что делает процесс установки и настройки TLS-шифрования значительно более простым. Например, на типичном веб-сервере на базе Linux, требуется исполнить две команды, которые настроят HTTPS шифрование, получат и установят сертификат примерно за 20-30 секунд. | Проект Let’s Encrypt создан для того, чтобы большая часть интернет-сайтов смогла перейти к шифрованным подключениям (HTTPS). В отличие от коммерческих центров сертификации, в данном проекте не требуется оплата, переконфигурация веб-серверов, использование электронной почты, обработка просроченных сертификатов, что делает процесс установки и настройки TLS-шифрования значительно более простым. Например, на типичном веб-сервере на базе Linux, требуется исполнить две команды, которые настроят HTTPS шифрование, получат и установят сертификат примерно за 20-30 секунд. | ||
- | Пакет с утилитами автонастройки и получения сертификата включён в официальные репозитарии дистрибутива [[debian:debian|Debian]]. Разработчики популярных браузеров, Mozilla и Google намерены постепенно отказаться от поддержки незашифрованного протокола HTTP путём отказа от поддержки новых веб-стандартов для http-сайтов. | + | Пакет с утилитами автонастройки и получения сертификата включён в официальные репозитории дистрибутива [[debian:debian|Debian]]. Разработчики популярных браузеров, Mozilla и Google намерены постепенно отказаться от поддержки незашифрованного протокола HTTP путём отказа от поддержки новых веб-стандартов для http-сайтов. |
https://letsencrypt.org/ | https://letsencrypt.org/ | ||
Строка 31: | Строка 31: | ||
Примеры файлов [[apache:examples#let_s_encrypt|здесь]]. | Примеры файлов [[apache:examples#let_s_encrypt|здесь]]. | ||
+ | |||
+ | ===== Debian 9 (stretch) ===== | ||
+ | |||
+ | - Устанавливаем необходимые пакеты: <code bash>apt-get install certbot python-certbot-apache</code> | ||
+ | - Настраиваем [[apache:apache|]]: <code bash>certbot --apache</code> | ||
+ | |||
+ | |||
+ | Проверка: | ||
+ | * Список сертификатов и возможность их обновления (automatic renewal) <code bash>certbot renew --dry-run</code> | ||
+ | * Данные о задании автообновления <code bash>systemctl list-timers grep certbot.timer</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | https://certbot.eff.org/lets-encrypt/debianstretch-apache | ||
===== Debian 8 (jessie) ===== | ===== Debian 8 (jessie) ===== | ||
[[https://certbot.eff.org/#debianjessie-apache|CertBot: Apache on Debian 8 (jessie)]] | [[https://certbot.eff.org/#debianjessie-apache|CertBot: Apache on Debian 8 (jessie)]] | ||
+ | <hidden Debian 8 (jessie)> | ||
1. Устанавливаем необходимые пакеты: | 1. Устанавливаем необходимые пакеты: | ||
<code bash> | <code bash> | ||
Строка 73: | Строка 88: | ||
https://www.ssllabs.com/ssltest/analyze.html?d=wiki.yola.ru | https://www.ssllabs.com/ssltest/analyze.html?d=wiki.yola.ru | ||
</code> | </code> | ||
+ | </hidden> | ||
===== Debian 7 (wheezy) ===== | ===== Debian 7 (wheezy) ===== | ||
Строка 79: | Строка 95: | ||
[[https://certbot.eff.org/#debianwheezy-apache|Apache on Debian 7 (wheezy)]] | [[https://certbot.eff.org/#debianwheezy-apache|Apache on Debian 7 (wheezy)]] | ||
+ | {{anchor:mailservers}} | ||
+ | ====== Почтовые серверы ====== | ||
+ | |||
+ | Использование сертификатов для почтовых серверов: | ||
+ | * [[dovecot:dovecot#letsencrypt|Dovecot]] | ||
+ | * [[postfix:postfix#letsencrypt|Postfix]] | ||
+ | |||
+ | Тестирование: | ||
+ | <code bash> | ||
+ | openssl s_client domain.ru:443 | ||
+ | openssl s_client -starttls smtp -connect domain.ru:587 | ||
+ | </code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[https://rusua.org.ua/2017/03/10/sertifikaty-letsencrypt-i-postfixcourier-popimap/|Сертификаты Let’sEncrypt и Postfix,Courier-pop/imap или Dovecot | Блокнот обычного админа =)]] | ||
+ | |||
+ | ====== Добавление домена ====== | ||
FIXME | FIXME | ||
+ | <code bash> | ||
+ | certbot --apache -d example.com -d www.example.com | ||
+ | </code> | ||
====== Обновление сертификата ====== | ====== Обновление сертификата ====== | ||
Поскольку сертификат Let's Encrypt выдаётся на 90 дней, нужно настроить автоматическое обновление сертификата. | Поскольку сертификат Let's Encrypt выдаётся на 90 дней, нужно настроить автоматическое обновление сертификата. | ||
Строка 105: | Строка 142: | ||
1 4 * * 1 /usr/bin/certbot renew >> /var/log/letsencrypt/certbot-renew.log | 1 4 * * 1 /usr/bin/certbot renew >> /var/log/letsencrypt/certbot-renew.log | ||
</code> | </code> | ||
+ | |||
+ | ====== Замена файлов ключа после обновления ====== | ||
+ | Замена файлов ключа в [[apache:apache|Apache]]: | ||
+ | <code bash apache-ssl_keys-change.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | prefix='domain.ru' # префикс | ||
+ | file_private='privkey.pem' # имя файла ключа | ||
+ | file_cert='cert.pem' # имя сертификата | ||
+ | |||
+ | path1=/etc/letsencrypt/live/ # путь к исходным файлам | ||
+ | path2_private=/etc/ssl/private/ # путь конечным файлам private | ||
+ | path2_cert=/etc/ssl/certs/ # путь конечным файлам cert | ||
+ | |||
+ | file1_private=$path1$prefix/$file_private # полный путь и имя исходного ключа | ||
+ | file1_cert=$path1$prefix/$file_cert # полный путь и имя исходного сертификата | ||
+ | file2_private=$path2_private$prefix"_"$file_private # полный путь и имя конечного ключа | ||
+ | file2_cert=$path2_cert$prefix'_'$file_cert # полный путь и имя конечного сертификата | ||
+ | |||
+ | |||
+ | cp -f $file1_cert $file2_cert | ||
+ | cp -f $file1_private $file2_private | ||
+ | chmod 0600 $file2_private | ||
+ | |||
+ | service apache2 reload | ||
+ | |||
+ | </code> | ||
+ | ====== TLS-SNI-01 validation is reaching end-of-life ====== | ||
+ | |||
+ | Нужен ''certbot'' версии старше 0.28 | ||
+ | |||
+ | <code bash certbot-update.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | apt-get remove certbot | ||
+ | cd /usr/local/sbin | ||
+ | wget https://dl.eff.org/certbot-auto | ||
+ | chmod a+x certbot-auto | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Выполняем для проверки: | ||
+ | <code bash> | ||
+ | /usr/local/sbin/certbot-auto renew | ||
+ | </code> | ||
+ | |||
+ | Пример задания для [[cron:cron|Cron]] | ||
+ | <code bash> | ||
+ | 0 0,12 * * * /usr/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/sbin/certbot-auto renew | ||
+ | |||
+ | </code> | ||
+ | |||
+ | ---- | ||
+ | [[https://community.letsencrypt.org/t/how-to-stop-using-tls-sni-01-with-certbot/83210|How to stop using TLS-SNI-01 with Certbot - Client dev - Let's Encrypt Community Support]] | ||
+ | |||
+ | [[https://certbot.eff.org/lets-encrypt/debianjessie-apache|Install Certbot for Apache on Debian 8 (jessie)]] | ||
+ | |||
+ | ====== IdenTrust DST Root CA X3 2021-09-30 ====== | ||
+ | |||
+ | 30 сентября 2021 конец срока действия IdenTrust DST Root CA X3. | ||
+ | |||
+ | Тест: | ||
+ | <code bash> | ||
+ | faketime -f '@2021-10-01 00:00:00' curl https://letsencrypt.org/ | ||
+ | </code> | ||
+ | |||
+ | Чтобы проверить наличие сертификата ISRG Root X1 в числе доверенных: | ||
+ | <code bash> | ||
+ | awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/c | ||
+ | </code> | ||
+ | |||
+ | **Решение** | ||
+ | * Вариант 1: <WRAP> | ||
+ | \\ В файле ''/etc/ca-certificates.conf'' нужно найти строчку: | ||
+ | <code> | ||
+ | mozilla/DST_Root_CA_X3.crt | ||
+ | </code> | ||
+ | и поставить в начало сроки символ "!": | ||
+ | <code> | ||
+ | !mozilla/DST_Root_CA_X3.crt | ||
+ | </code> | ||
+ | Далее, необходимо выполнить команду: | ||
+ | <code bash> | ||
+ | sudo update-ca-certificates | ||
+ | </code> | ||
+ | </WRAP> | ||
+ | * Вариант 2: <WRAP> | ||
+ | Установить новый сертификат {{isrg_root_x1_2015-06-04_2035-06-04.pem|ISRG Root X1 (до 2035-06-04)}}. \\ [[https://letsencrypt.org/certs/isrgrootx1.pem.txt|источник]], [[https://censys.io/certificates/6d99fb265eb1c5b3744765fcbc648f3cd8e1bffafdc4c2f99b9d47cf7ff1c24f|источник 2]] | ||
+ | </WRAP> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[https://www.opennet.ru/opennews/art.shtml?num=55875|Устаревание корневого сертификата IdenTrust приведёт к потере доверия к Let's Encrypt на старых устройствах]] | ||
+ | |||
+ | [[https://habr.com/ru/post/580092/|30 сентября: Let's Encrypt и конец срока действия IdenTrust DST Root CA X3 / Хабр]] | ||
====== Ссылки ====== | ====== Ссылки ====== | ||
Строка 132: | Строка 264: | ||
[[http://www.opennet.ru/opennews/art.shtml?num=48255|opennet.ru: Проект Let's Encrypt ввёл в строй протокол ACMEv2 и поддержку масок]] | [[http://www.opennet.ru/opennews/art.shtml?num=48255|opennet.ru: Проект Let's Encrypt ввёл в строй протокол ACMEv2 и поддержку масок]] | ||
+ | [[https://upcloud.com/community/tutorials/secure-postfix-using-lets-encrypt/|How to secure Postfix using Let's Encrypt - UpCloud]] | ||
+ | |||
+ | |||
+ | **[[https://wiki.calculate-linux.org/ru/lets_encrypt|wiki.calculate-linux: Let's Encrypt - получение бесплатного сертификата]]** | ||
{{tag>Encryption}} | {{tag>Encryption}} |