Для  работы  с  сертификатами  LetsEncript  нужен ACME-script обеспечивающий
проверку владения доменом с  валидацией  по  HTTP  (положить  на  веб-сервер
авторизующий файл) или DNS (добавить в DNS-зону подтверждающий TXT-record)


https://help.reg.ru/support/ssl-sertifikaty/3-etap-ustanovka-ssl-sertifikata/kak-nastroit-ssl-sertifikat-na-nginx#0


Скрипт упакован как snap-контейнер под snapd

#  https://snapcraft.io/docs/installing-snap-on-opensuse

 # добавляем репозиторий со snapd
 sudo zypper addrepo --refresh \
 https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.5 \
 snappy

 sudo zypper --gpg-auto-import-keys refresh
 sudo zypper dup --from snappy

 # инсталлируем snapd
 sudo zypper install snapd
 sudo systemctl enable --now snapd
 sudo systemctl enable --now snapd.apparmor

 убедиться, что PATH содержит /snap/bin

 # инсталлируем snap-контейнер с certbot
 sudo snap install --classic certbot
 sudo ln -s /snap/bin/certbot /usr/bin/certbot

        Запрос и установка сертификата

 sudo certbot certonly --nginx
 sudo certbot renew --dry-run   # тренировочный запуск

    /etc/crontab/
    /etc/cron.*/*
    systemctl list-timers

               --config-dir --logs-dir --work-dir
    /etc/letsencrypt/        should
    /var/log/letsencrypt/       be
    /var/lib/letsencrypt/     writable

    /etc/letsencrypt/cli.ini

 # авторизующий файл попадет в ${webroot-path}/.well-known/acme-challenge/
 certbot certonly --webroot
  --webroot-path /var/www/example.com
    -d example.com -d www.example.com
  --webroot-path /var/www/firma.ru
       -d firma.ru -d www.firma.ru

  --reuse-key True      When renewing, use the same private key
                        existing certificate. (default: False)
  --key-path KEY_PATH   Path to private key for certificate

    Управление эккаунтом

register Create an ACME account unregister Deactivate an ACME account update_account Update an ACME account show_account Display account details --agree-tos Agree to the ACME server's Subscriber Agreement -m EMAIL Email address for important account notifications certbot register --agree-tos -m root@firm.ru

    Управление сертификатами

### https://eff-certbot.readthedocs.io/en/latest/using.html#webroot # получить список certbot certificates # обновить сертификат certbot --force-renewal -d existing.com -d www.existing.com # вписать в сертификат дополнительные домены certbot --expand -d existing.com,example.com,newdomain.com [ --cert-name явно-указать-имя-сертификата ] # отзыв сертификата certbot revoke --cert-name example.com certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem # удаление сертификата certbot delete --cert-name example.com # обновлеяет все сертификаты, со сроком годности менее 30 дней certbot renew # обновить конкретный сертификат -n - noninteractive certbot certonly -n -d example.com -d www.example.com

    Что где лежит

All generated keys and issued certificates can be found in /etc/letsencrypt/live/$domain

    SSL в nginx

openssl docs https://sslmagazin.com/helper/89--openssl-ssl-commands # декодинг сертификата openssl x509 -text -in chain.pem -noout https://help.reg.ru/support/ssl-sertifikaty/3-etap-ustanovka-ssl-sertifikata/kak-nastroit-ssl-sertifikat-na-nginx#0 server { listen 81.176.66.164:443 ssl; server_name your_domain.com www.your_domain.com *.your_domain.com; ssl_certificate /etc/ssl/your_domain.crt; ssl_certificate_key /etc/ssl/your_domain. key; } # кэшировать параметры SSL-сессии ssl_session_cache shared:SSL:30m; ssl_session_timeout 20m; keepalive_timeout 70; # поддерживаемые протоколы ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # серверные cipher's приоритетнее клиентских ssl_prefer_server_ciphers on; # разрешаем OCSP-ответы ssl_stapling on; ssl_stapling_verify on; # rusf ssl_trusted_certificate /etc/letsencrypt/live/afgan.ru/chain.pem; # CA-сертификат который нас подписал resolver 127.0.0.1 ipv6=off; server { ssl_session_tickets on; ssl_session_ticket_key /home/rusf/nginx/conf/ssl/rusf.ru.ticket; ssl_trusted_certificate /home/rusf/nginx/conf/ssl/lets_full_chain.pem; if ($scheme = https) { set $xhttps_header "on"; } proxy_set_header X-HTTPS $xhttps_header; proxy_set_header Connection ""; } acme.sh https://itsecforu.ru/2019/02/06/%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-acme-sh-%D0%B8-%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%BE%D0%BC-lets-encrypt-ssl/ Существенно более компактный ACME-клиент на bash git clone https://github.com/Neilpang/acme.sh.git cd acme.sh ./acme.sh --install --cert-home /etc/ssl/certs --accountemail le@example.com sudo ln -s ~/.acmesh/acme.sh /usr/local/bin/ # из под sudo не работает. В каталог НЕ ~/.acme.sh/ встает криво ./acme.sh --install \ --home ~/myacme \ # ~/.acme.sh/ каталог для софта --config-home ~/myacme/data \ # home write-каталог --cert-home ~/mycerts \ # config-home для сертификатов --accountemail "hi@acme.sh" \ # --accountkey ~/myaccount.key \ # config-home приватный ключ эккаунта --accountconf ~/myaccount.conf \ # ~/.acme.sh/account.conf --useragent "this is my client." # Set default CA from "zerossl" to "letsencrypt" acme.sh --set-default-ca --server letsencrypt acme.sh --register-account --accountemail hi@acme.sh acme.sh --info acme.sh --upgrade acme.sh --uninstall-cronjob acme.sh --install-cronjob D=example.com ; acme.sh --issue -d $D -d www.$D --webroot /etc/nginx/ssl acme.sh --cron # обновить все сертификаты старше 2 месяцев acme.sh --renew -d example.com # --force - обновить независимо от времени acme.sh --renewall # --force acme.sh --revoke -d example.com acme.sh --remove -d example.com acme.sh --list openssl x509 -text -in /etc/nginx/ssl/example.com_ecc/example.com.cer -noout Cert: /etc/nginx/ssl/example.com_ecc/example.com.cer Cert key: /etc/nginx/ssl/example.com_ecc/example.com.key CA cert: /etc/nginx/ssl/example.com_ecc/ca.cer Full-chain cert: /etc/nginx/ssl/example.com_ecc/fullchain.cer

Популярность: 16, Last-modified: Wed, 24 Jul 2024 18:08:28 GmT