Инструменты пользователя

Инструменты сайта


freebsd:network:letsencrypt

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
freebsd:network:letsencrypt [2020/06/15 17:24] – [Продление] andreifreebsd:network:letsencrypt [2020/06/17 22:25] (текущий) – [Продление] andrei
Строка 5: Строка 5:
 ===== Введение ===== ===== Введение =====
  
-Для того, чтобы шифровать трафик нам необходим SSL сертификат. Его конечно можно выпустить самому, но тогда браузеры, почтовые клиенты и т.д. будут постоянно на него ругаться, а некоторые пользователи очень пугаются когда видят подобные сообщения. Поэтому для того, чтобы лишний не расшатывать психику пользователей, мы воспользуемся услугами центра сертификации [[https://letsencrypt.org/ru/|Let's Encrypt]].+Для того, чтобы шифровать трафик нам необходим SSL сертификат. Его конечно можно выпустить самому, но тогда браузеры, почтовые клиенты и т.д. будут постоянно на него ругаться, а некоторые пользователи очень пугаются когда видят подобные сообщения. Поэтому для того, чтобы лишний раз не расшатывать психику пользователей, мы воспользуемся услугами центра сертификации [[https://letsencrypt.org/ru/|Let's Encrypt]].
  
 Let's Encrypt я выбрал потому что: Let's Encrypt я выбрал потому что:
-  * с помощью этого центра можно выпускать (а в ряде случаев даже установить) и продлевать полученные сертификаты в нашу систему в автоматическом режиме;+  * с помощью этого центра можно выпускать (а в ряде случаев даже установливать) и продлевать полученные сертификаты в нашу систему в автоматическом режиме;
   * он позволяет выпускать wildcard-сертификаты;   * он позволяет выпускать wildcard-сертификаты;
-  * и при всем при это он бесплатный;+  * и при всем при этом он бесплатный;
  
 Действие сертификата ограничивается 90 днями, но это не проблема, так как процедуру его продления можно легко автоматизировать. Действие сертификата ограничивается 90 днями, но это не проблема, так как процедуру его продления можно легко автоматизировать.
Строка 20: Строка 20:
 ==== Bind ==== ==== Bind ====
  
-Для подтверждения Ваши прав на домен, Let's Encrypt просит временно добавить в Вашу зону строчку вида:+Для подтверждения Ваших прав на домен, Let's Encrypt просит временно добавить уникальную строку-идентификатор, которую любым способом необходимо разместить в специальной TXT-записи нижеследующего формата, чтобы проверяющий сервер Let's Encrypt мог считать её и удостовериться, что мы владеем или управляем указанным DNS-сервером:
 <code> <code>
 _acme-challenge.nzgw.ru. 120 IN TXT "ivM...6sw" _acme-challenge.nzgw.ru. 120 IN TXT "ivM...6sw"
 </code> </code>
  
-Поскольку мы не хотим делать каждый раз в ручную, нам придется настроить автоматическое обновление зон.+Поскольку мы не хотим делать это каждый раз в ручную, нам придется настроить автоматическое обновление зон.
 Начнем с генерации TSIG-ключа ("Transaction SIGnature") для подписания запросов к DNS серверу: Начнем с генерации TSIG-ключа ("Transaction SIGnature") для подписания запросов к DNS серверу:
  
Строка 144: Строка 144:
 </code> </code>
 Где: Где:
-  * **certonly** даем команду на выпуск сертификата без установки; +  * **certonly** команда на выпуск сертификата без установки; 
-  * **--dns-rfc2136** подгружаем плагин для авторизацию через DNS;+  * **--dns-rfc2136** плагин для авторизацию через DNS;
   * **--dns-rfc2136-credentials** путь к файлу с настройками авторизации;   * **--dns-rfc2136-credentials** путь к файлу с настройками авторизации;
-  * **--preferred-challenges=dns** выбираем тип авторизации; +  * **--preferred-challenges=dns** тип авторизации; 
-  * **--manual-public-ip-logging-ok** разрешаем логировать IP с которого пришел запрос на выпуск сертификата;+  * **--manual-public-ip-logging-ok** разрешение логировать IP с которого пришел запрос на выпуск сертификата;
   * **-d** список доменов для сертификата.   * **-d** список доменов для сертификата.
  
-Если мы все правильно настроили и DNS авторизация прошла успешно, то мы получим следующее сообщение:+Если мы все правильно настроилии DNS авторизация прошла успешно, то мы получим следующее сообщение:
  
 <code> <code>
Строка 188: Строка 188:
   * **privkey.pem** приватный ключ вашего сертификата.   * **privkey.pem** приватный ключ вашего сертификата.
  
-<note> На самом деле сертификаты лежат в другой папке, а тут только ссылки на действующие. Это сделано для того, что после перевыпуска не надо было менять конфиги сервисов, которые ими пользуются.+<note> На самом деле сертификаты лежат в другой папке, а тут только ссылки на действующие. Это сделано для того, что после перевыпуска не надо было менять конфигурацию сервисов, которые ими пользуются.
 </note> </note>
  
 ===== Настройка apache ===== ===== Настройка apache =====
  
-Для того, что веб сервер apache начал использовать выпущенный сертификат, необходимо в его конфиг добавить следующие строки:+Для того, чтобы веб сервер apache начал использовать выпущенный сертификат, необходимо в его конфиг добавить следующие строки:
  
 <code> <code>
Строка 216: Строка 216:
 Теперь FreeBSD раз в неделю будет запускать соответсвующий скрипт, и при необходимости будет перевыпускать сертификат и перезапускать apache. Теперь FreeBSD раз в неделю будет запускать соответсвующий скрипт, и при необходимости будет перевыпускать сертификат и перезапускать apache.
  
-Но поскольку у меня несколько этим сертификатом пользуются несколько сервисов, то пришлось написать небольшой скрипт:+Но поскольку у меня несколько сервисов пользуются этим сертификатом несколько сервисов, то пришлось написать небольшой скрипт:
  
 <code> <code>
Строка 246: Строка 246:
 </code> </code>
  
 +Добавляем в файл /etc/rc.conf перечень сервисов, которые надо перезапускать после перевыпуска сертифика:
  
-При возникновение проблем с перевыпуском сертификата на стороне Let's Encrypt на email, указанный при регистрации аккаунта, придет соответсвующее письмо.+<code> 
 +certbot_service="apache24 sendmail dovecot" 
 +</code> 
 + 
 +<note> 
 +Перечисленные в этой переменной сервисы будет перезапускаться только в случае выпуска нового сертификата
 +</note> 
 + 
 +и создаем в /etc/crontab задачу на запуск скрипта:
  
 <code> <code>
-certbot renew --renew-hook 'service apache24 restart && service sendmail restart && service dovecot restart && service strongswan restart'+@weekly     root    /root/bin/cert_renew.sh
 </code> </code>
 +
 +<note>
 +Если мы используем свой скрипт, то переменные в файле /etc/periodic.conf устанавливать не надо!
 +</note>
 +
 +При возникновение проблем с перевыпуском сертификата на стороне Let's Encrypt на email, указанный при регистрации аккаунта, придет соответсвующее письмо.
 +
freebsd/network/letsencrypt.1592241880.txt.gz · Последнее изменение: andrei