Генерация сертификата Let’s Encrypt через утилиту certbot

При необходимости в быстрой генерации бесплатного сертификата можно воспользоваться следующей инструкцией. Пошаговое руководство:

  1. Установка утилиты certbot. На данный момент утилита certbot входит в репозитории большинства дистрибутивов linux. Для установки используем следующие команды:
				
					sudo apt-get update
sudo apt-get install certbot
				
			
				
					sudo yum install epel-release
sudo yum install certbot
				
			
				
					sudo dnf install epel-release
sudo dnf install certbot
				
			
				
					sudo apk update
sudo apk add certbot
				
			

     2. Для генерации сертификата для домена your-domain воспользуемся утилитой:

				
					sudo certbot certonly --manual --preferred-challenges dns --debug-challenges -d your-domain
				
			

certonly — получает сертификат и кладет его в директорию /etc/letsencrypt/live;

—manual — отключает все функции автоматической интеграции;

—preferred-challenges — тип проверки домена, используем через dns запись;

—debug-challenges — вывод подробной информации и процессе;

-d — домен, для которого необходимо выпустить сертификат, может быть несколько. Если вы хотите получить wildcard-сертификат, не забудьте поставить перед звездочкой (*) escape-символ обратного слеша (\) (\*.your-domain.com).

       3. В процессе придется ответить на несколько вопросов. Необходимо ввести почтовый ящик, согласиться\отказаться о предоставлении ящика третьим лицам, согласиться с логированием IP адреса. 

       4. Затем выйдет сообщение

				
					Please deploy a DNS TXT record under the name
_acme-challenge.your-domain with the following value:

j3QNTyghuGFpLMILN0zsW5k4XbNQFweOc352T0nmoY0

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue...
				
			

На этом этапе надо внести в DNS TXT запись и подождать пока выгрузиться зона. Доступность DNS записи можно проверить Google утилитой

      5. В случае успеха видим следующее:

				
					Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your-domain/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your-domain/privkey.pem
				
			

По факту в директории /etc/letsencrypt/live только символьная ссылка, сами сертификаты лежать в /etc/letsencrypt/archive/, при перегенерации ссылка будет на последний актуальный сертификат.

     6. Повторный запуск команды обновить сертификаты. Можно использовать ключ —force-renew для автоматического подтверждения обновления сертификата.

     7. Собрать PFX можно следующей командой:

				
					openssl pkcs12 -inkey server_key.pem -in server_cert.cert -export -out server_pfx.pfx