Добавим репозиторий.
apt-get update
apt-get install software-properties-common
add-apt-repository universe
add-apt-repository ppa:certbot/certbot
Обновим список пакетов.
Установим certbot.
Настроим certbot для nginx.
Предварительно уже было создано 2 сайта, с примерно такими конфигами:
server {
listen 80;
listen [::]:80;
listen 443 ssl;
server_name mysite.ddns.net;
keepalive_timeout 60;
ssl_certificate /etc/letsencrypt/live/mysite.ddns.net/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mysite.ddns.net/privkey.pem; # managed by Certbot
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!RC4:!aNULL:!MD5:!kEDH";
add_header Strict-Transport-Security 'max-age=604800';
root /var/www/mysite;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
Теперь при конфигурации certbot запросит выбрать какие сайты мы будем подписывать, мы укажим цифрами через запятую, какие сайты мы подписываем.
Для обновления сертификатов выполним команду.
Для автоматического обновления добавим запись в cron
В 23-59 каждые 40 дней.