[26] Certyfikat SSL – Let’s Encrypt (Snapd)
23 lutego 2021Uzyskaj 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