Certbot
Darmowe certyfikaty od Let’s Encrypt
Created Oct 24, 2022 - Last updated: Jan 13, 2023
Let’s encrypt od dawna oferuje darmowe certyfikaty.
Jeszcze niedawno można było sobie wygenerować certyfikat na rok. Odnowienie tego certyfikatu wymagało tylko uruchomienia jednego polecenia. Niestety było to nadużywane więc teraz trzeba odnawiać certyfikat częściej - jest ważny tylko trzy miesiące.
Ręczne wygenerowanie certyfikatu LetEncrypt
Wygenerowanie nowego certyfikatu ręcznie, z użyciem autoryzacji jego generowania za pomoca wpisu TXT w DNS można zrealizować narzędziem takim jak Certbot.
DOMAIN=adres.domenowy
certbot certonly --manual --preferred-challenges dns -d $DOMAIN -d *.$DOMAIN --agree-tos --manual-public-ip-logging-ok --server https://acme-v02.api.letsencrypt.org/directory --register-unsafely-without-email --rsa-key-size 4096
Powyższe działa krok po kroku. Jest czas, by dodać (wyedytować) dwa odpowiednie wpisy TXT w DNS, z subdomenowym adresem zaczynającym się od _acme-challenge, poczekać aż się rozpropaguje i wtedy przejść z generowaniem do kolejnego kroku. Taki certyfikat nie może być aktualizowany automatycznie.
Czy wpisy TXT zostały już dodane lub zaktualiozwane można prosto sprawdzić online.
Niestety Let’s encrypt nie chciało zweryfikować moich certyfikatów za pomocą odpowiedniego pliku dostępnego po http - do sprawdzenia w przyszłości.
W konfiguracji Apache trzeba mieć trzy linijki, które w przypadku certyfikatu wygenerowanego ręcznie, trzeba też samodzielnie wpisać w odpowiedniego VirtualHosta.
SSLCertificateFile /etc/letsencrypt/live/adres.domenowy/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/adres.domenowy/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
Na koniec trzeba zrestartować Apache aby serwował zaktualizowaną wersję certyfikatu.
Sprawdzenie certyfikatu z CLI
Na serwerze:
openssl x509 -dates -noout -in cert.pem
Wypuszczonego po sieci:
DOM="www.nixcraft.com"
PORT="443"
openssl s_client -servername $DOM -connect $DOM:$PORT \
| openssl x509 -noout -dates