[26] Certyfikat SSL – Let’s Encrypt (Snapd)

23 lutego 2021 Wyłączono przez Adam [zicherka] Nogły

Uzyskaj certyfikaty SSL od firmy Let’s Encrypt, która zapewnia bezpłatne certyfikaty SSL.
Zapoznaj się ze szczegółami z oficjalnej strony Let’s Encrypt: https://letsencrypt.org/
Data wygaśnięcia certyfikatu z Let’s Encrypt to 90 dni, więc musisz zaktualizować go w ciągu następnych 90 dni, ale nie później.
Jeśli jednak zainstalowałeś pakiet Certbot ze Snapd w podany poniżej sposób, skrypt Systemd Timer jest w nim zawarty, więc odnowienie odbywa się automatycznie.

[1] Zainstaluj Snapd. [18] Snappy – Instalacja

Certbot-auto 1.10.0 i nowsze wersje nie są oficjalnie zalecane, a także nie są aktualizowane, oficjalnie zaleca się instalację certbota firmy Snapd.
Czyli instrukcja instalacji certyfikatu z tego miejsca: [3] Certyfikat SSL – Let’s Encrypt, nie jest już oficjalnie wspierana.

[2] Zainstaluj Certbot ze Snapd.

[root@vlsr01 ~]# snap install certbot --classic
2021-02-23T09:35:30+01:00 INFO Waiting for automatic snapd restart... 
certbot 1.12.0 from Certbot Project (certbot-eff✓) installed
[root@vlsr01 ~]# ln -s /snap/bin/certbot /usr/bin/certbot

[3] Pobierz certyfikat.

Wymaga serwera WWW, takiego jak Apache httpd lub Nginx, musi działać na serwerze, na którym pracujesz.
Jeśli żaden serwer WWW nie jest uruchomiony, pomiń tę sekcję i zapoznaj się z sekcją [4].
Ponadto wymaga, aby możliwy był dostęp z Internetu do działającego serwera na porcie 80 aby można było przeprowadzić weryfikację z Let’s Encrypt.

# dla opcji [--webroot], użyj katalogu webroot zdefiniowanego dla Twojego serwera WWW
# -w [document root] -d [FQDN dla której chcesz pobrać certyfikat]
# FQDN (Fully Qualified Domain Name) : nazwahosta.nazwadomeny
# jeśli chcesz pobrać certyfikaty dla 2 lub więcej FQDN, zrób jak poniżej
# przykładowo: jeśli chcesz certyfikaty dla [zicher.lab] i [vlsr01.zicher.lab]
# [-d zicher.lab -d vlsr01.zicher.lab]

[root@vlsr01 ~]# certbot certonly --webroot -w /var/www/html -d vlsr01.zicher.lab
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): root@zicher.lab # wpisz adres email

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for vlsr01.zicher.lab
Performing the following challenges:
http-01 challenge for vlsr01.zicher.lab
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Subscribe to the EFF mailing list (email: root@zicher.lab).

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/vlsr01.zicher.lab/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/vlsr01.zicher.lab/privkey.pem
Your certificate will expire on 2021-05-24. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

# wszystko OK, jeśli pokaże się [Congratulations]
# certyfikat jest utworzony w katalogu[/etc/letsencrypt/live/(FQDN)/]

# cert.pem -> certyfikat SSL Servera (zawiera klucz publiczny)
# chain.pem -> certyfikat pośredni
# fullchain.pem -> połączony plik cert.pem i chain.pem
# privkey.pem -> plik klucza prywatnego

[4] Jeśli na twoim serwerze nie działa żaden serwer WWW, możliwe jest uzyskanie certyfikatów za pomocą funkcji serwera internetowego Certbot. W każdym razie musisz mieć dostęp z Internetu do działającego serwera na porcie 80 – weryfikacja z Let’s Encrypt.

# dla opcji [--webroot], użyj katalogu webroot zdefiniowanego dla Twojego serwera WWW
# -w [document root] -d [FQDN dla której chcesz pobrać certyfikat]
# FQDN (Fully Qualified Domain Name) : nazwahosta.nazwadomeny
# jeśli chcesz pobrać certyfikaty dla 2 lub więcej FQDN, zrób jak poniżej
# przykładowo: jeśli chcesz certyfikaty dla [zicher.lab] i [vlsr01.zicher.lab]
# [-d zicher.lab -d vlsr01.zicher.lab]
[root@vlsr01 ~]# certbot certonly --standalone -d mail.vlsr01.zicher.lab
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Requesting a certificate for mail.vlsr01.zicher.lab
Performing the following challenges:
http-01 challenge for mail.vlsr01.zicher.lab
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mail.vlsr01.zicher.lab/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mail.vlsr01.zicher.lab/privkey.pem
Your certificate will expire on 2021-05-24. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

[5] Aby zaktualizować istniejące certyfikaty, użyj podkomendy [renew].
Uruchomienie komendy [renew], aktualizuje wszystkie certyfikaty, których ważność jest krótsza niż 30 dni.
Jeśli chcesz zaktualizować certyfikaty, których ważność jest dłuższa niż 30 dni, dodaj opcję [–force-renew].
Jednak pakiet [certbot] od Snapd ma licznik czasu systemowego, więc nie musisz już uruchamiać polecenia [renew] ręcznie.

# skrypt timera systemowego jest zawarty w pakiecie Snapd Certbot
[root@vlsr01 ~]# systemctl status snap.certbot.renew.timer
● snap.certbot.renew.timer - Timer renew for snap application certbot.renew
Loaded: loaded (/etc/systemd/system/snap.certbot.renew.timer; enabled; vendor preset: disabled)
Active: active (waiting) since Tue 2021-02-23 09:35:58 CET; 12h ago
Trigger: Wed 2021-02-24 10:00:00 CET; 11h left

lut 23 09:35:58 vlsr01.zicher.lab systemd[1]: Started Timer renew for snap application certbot.renew.

# [renew] jest uruchamiany domyślnie 2 razy
[root@vlsr01 ~]# systemctl cat snap.certbot.renew.timer
# /etc/systemd/system/snap.certbot.renew.timer
[Unit]
# Auto-generated, DO NOT EDIT
Description=Timer renew for snap application certbot.renew
Requires=var-lib-snapd-snap-certbot-952.mount
After=var-lib-snapd-snap-certbot-952.mount
X-Snappy=yes

[Timer]
Unit=snap.certbot.renew.service
OnCalendar=*-*-* 10:00
OnCalendar=*-*-* 16:07

[Install]
WantedBy=timers.target

# aby odnowić certyfikat ręcznie wykonaj
[root@vlsr01 ~]# certbot renew

[6] Jeśli chcesz przekonwertować certyfikat do formatu Windows PKCS12 (PFX), postępuj jak poniżej.

[root@vlsr01 ~]# openssl pkcs12 -export -in /etc/letsencrypt/live/vlsr01.zicher.lab/fullchain.pem -inkey /etc/letsencrypt/live/vlsr01.zicher.lab/privkey.pem -out vlsr01_for_iis.pfx
Enter Export Password: # wpisz hasło
Verifying - Enter Export Password: # potwierdź hasło