====== Letsencrypt Certbot ======
* [[https://letsencrypt.org/ru/getting-started/|Приступая к работе]]
* [[https://certbot.eff.org/|Certbot]]
* [[https://dvmn.org/encyclopedia/deploy/renewing-certbot-certificates-for-nginx-using-a-systemd-timer/|Автоматическое обновление сертификатов Certbot для Nginx по таймеру Systemd]]
* [[https://www.8host.com/blog/sozdanie-sertifikata-lets-encrypt-dlya-nginx-v-ubuntu-20-04/|Создание сертификата Let’s Encrypt для Nginx в Ubuntu 20.04]]
===== Настройка DNS =====
$ host siteN.mgtu.ru
siteN.mgtu.ru has address 195.19.40.42
===== Установка certbot =====
ubuntu# snap install --classic certbot
debian# apt install certbot
===== Проверка по HTTP =====
==== C использованием Apache ====
* [[Сервис HTTP#Установка и запуск сервера Apache]]
=== Создание сайта ===
* [[Сервис HTTP#Использование виртуальных хостов]]
vps:~# mkdir /var/www/siteN.mgtu.ru
vps:~# cat /var/www/siteN.mgtu.ru/index.html
siteN.mgtu.ru
vps:~# cat /etc/apache2/sites-available/siteN.mgtu.ru.conf
ServerName siteN.mgtu.ru
DocumentRoot /var/www/siteN.mgtu.ru
vps:~# a2ensite siteN.mgtu.ru
vps:~# apachectl -t
vps:~# systemctl reload apache2
* http://siteN.mgtu.ru
=== Запрос и подтверждение сертификата "вручную" ===
* Только для обучения, в дальнейшем использовать [[#Запрос и подтверждение сертификата "автоматически"]]
vps:~# certbot certonly --manual -d siteN.mgtu.ru
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): Enter
...
You must agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
...
Create a file containing just this data:
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
And make it available on your web server at this URL:
http://siteN.mgtu.ru/.well-known/acme-challenge/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
...
Press Enter to Continue
* !!! Оставляем эту и открываем новую консоль !!!
vps:~# mkdir -p /var/www/siteN.mgtu.ru/.well-known/acme-challenge/
vps:~# cat /var/www/siteN.mgtu.ru/.well-known/acme-challenge/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
$ curl http://siteN.mgtu.ru/.well-known/acme-challenge/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
* !!! Возвращаемся в предыдущую консоль !!!
...
Press Enter to Continue
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/siteN.mgtu.ru/fullchain.pem
Key is saved at: /etc/letsencrypt/live/siteN.mgtu.ru/privkey.pem
...
=== Настройка SSL для сайта ===
* [[Сервис HTTP#Поддержка протокола HTTPS]]
vps:~# cat /etc/apache2/sites-available/siteN.mgtu.ru.conf
...
ServerName siteN.mgtu.ru
DocumentRoot /home/val/siteN.mgtu
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/siteN.mgtu.ru/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/siteN.mgtu.ru/privkey.pem
vps:~# apachectl -t
vps:~# systemctl reload apache2
* https://siteN.mgtu.ru
=== Продление сертификата "вручную" ===
vps:~# certbot certonly --manual -d siteN.mgtu.ru
Renewing an existing certificate for siteN.mgtu.ru
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create a file containing just this data:
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
And make it available on your web server at this URL:
http://siteN.mgtu.ru/.well-known/acme-challenge/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
val@val:~$ vim siteN.mgtu/.well-known/acme-challenge/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
$ ###curl http://siteN.mgtu.ru/.well-known/acme-challenge/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
vps:~# service apache2 reload
=== Запрос и подтверждение сертификата "автоматически" ===
== Apache ==
* [[#Создание сайта]]
vps:~# apt install python3-certbot-apache
vps:~# certbot --apache -d siteN.mgtu.ru
...
vps:~# less /etc/apache2/sites-available/siteN.mgtu.ru-le-ssl.conf
vps:~# less /etc/apache2/sites-available/siteN.mgtu.ru.conf
vps:~# ls -l /etc/apache2/sites-enabled/
$ curl https://siteN.mgtu.ru -v
$ curl http://siteN.mgtu.ru -v
== Nginx ==
* [[Сервис HTTP#Установка и запуск сервера Nginx]]
vps:~# cat /etc/nginx/sites-available/default
vps:~# vim /etc/nginx/sites-available/siteN.mgtu.ru
vps:~# cat /var/www/siteN.mgtu.ru/index.html
* [[Сервис HTTP#Подключение, тестирование, применение и мониторинг конфигурации]]
$ curl siteN.mgtu.ru
vps:~# apt install python3-certbot-nginx
vps:~# certbot --nginx -d siteN.mgtu.ru
vps:~# more /etc/nginx/sites-available/siteN.mgtu.ru
== DNS bind ==
* [[Let's Encrypt для внутренних сайтов]]
* [[Let's Encrypt для внутренних сайтов]]
===== Отладка certbot =====
vps:~# ls /etc/letsencrypt/renewal/
vps:~# less /etc/letsencrypt/renewal/siteN.mgtu.ru.conf
vps:~# systemctl show certbot.timer
vps:~# systemctl show certbot.service
vps:~# tail /var/log/letsencrypt/letsencrypt.log