Получаем сертификаты Let’s Encrypt при помощи Certbot в Debian 12

Certbot это клиент протокола ACME предназначенный для автоматического управления SSL-сертификатами от Let’s Encrypt, он позволяет полностью автоматизировать процесс получения и продления сертификата, а при использовании соответствующих плагинов даже может автоматически конфигурировать веб-сервер или иное, использующее сертификат приложение.
Все дальнейшие инструкции будут предназначены для пользователей с Debian 12, но многое будет справедливо и для иных дистрибутивов Linux.

Установим/переустановим cerboot :
sudo apt purge certbot
sudo apt autoremove
sudo apt install certbot -y
sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface
sudo apt install python3-certbot-apache

Создадим директорию для загрузки сертификатов :
mkdir /var/www/letsencrypt
mkdir -p /var/www/letsencrypt/.well-known/acme-challenge
chown www-data:www-data /var/www/letsencrypt

Предоставим доступ к директории для загрузки сертификатов :
файл /etc/apache2/conf-available/letsencrypt.conf

Alias /.well-known/acme-challenge/ «/var/www/letsencrypt/.well-known/acme-challenge/»
AllowOverride None
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS

Перезапустим apache и убедимся что нет ошибок при запуске :
sudo apachectl configtest
journalctl -xeu apache2.service

Создадим файл настроек для web сервера : /etc/apache2/sites-available/ipnetcat.ddns.net.conf  
<VirtualHost *:80>
   DocumentRoot /var/www/ipnetcat.ddns.net
   ServerName ipnetcat.ddns.net
   ServerAdmin ipanchenko.a@gmail.com
   ErrorLog ${APACHE_LOG_DIR}/ipnetcat.ddns.net.error.log
   CustomLog ${APACHE_LOG_DIR}/ipnetcat.ddns.net.access.log combined
   RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

Перезапустим apache и убедимся что нет ошибок при запуске :
sudo apachectl configtest
journalctl -xeu apache2.service

Запустим в тестовом режиме получение сертификата :
certbot certonly —dry-run —webroot -w /var/www/letsencrypt -d ipnetcat.ddns.net
И если всё хорошо, то в боевом режиме получаем сертификаты :
certbot certonly —webroot -w /var/www/letsencrypt -d ipnetcat.ddns.net

Готовим конфигурационный файл cat /etc/apache2/sites-available/ipnetcat.ddns.net-le-ssl.conf  
<IfModule mod_ssl.c>
       <VirtualHost _default_:443>
               ServerAdmin ipanchenko.a@gmail.com
               ServerName ipnetcat.ddns.net
               DocumentRoot /var/www/ipnetcat.ddns.net
               ErrorLog ${APACHE_LOG_DIR}/ipnetcat.ddns.net-ssl-error.log
               CustomLog ${APACHE_LOG_DIR}/ipnetcat.ddns.net-ssl-access.log combined
               SSLEngine on
               SSLProtocol all -SSLv2
               SSLCertificateFile    /etc/letsencrypt/live/ipnetcat.ddns.net/fullchain.pem
               SSLCertificateKeyFile /etc/letsencrypt/live/ipnetcat.ddns.net/privkey.pem
               SSLCertificateChainFile /etc/letsencrypt/live/ipnetcat.ddns.net/chain.pem
               <FilesMatch «\.(cgi|shtml|phtml|php)$»>
                               SSLOptions +StdEnvVars
               </FilesMatch>
               <Directory /usr/lib/cgi-bin>
                               SSLOptions +StdEnvVars
               </Directory>
       </VirtualHost>
</IfModule>

Включаем конфигурацию И перезапускаем сервер :
a2ensite ipnetcat.ddns.net-le-ssl.conf
a2enmod rewrite
systemctl restart apache2
Не забываем сделать необходимые линки для включения конфигурации :
ipnetcat.ddns.net.conf -> /etc/apache2/sites-available/ipnetcat.ddns.net.conf
ipnetcat.ddns.net-le-ssl.conf -> /etc/apache2/sites-available/ipnetcat.ddns.net-le-ssl.conf

Несколько команда которые могут пригодится для работы с cerbot.
+ показать имеющиеся сертификаты :
certbot certificates
+ продлить сертификаты :
certbot renew

Запись опубликована в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *