Mam zieloną kłódkę! Udało mi się zainstalować certyfikat HTTPS z Let’s Encrypt. Mój hosting (Hekko.pl) niestety nie udostępnia automatycznego narzędzia zintegrowanego z Let’s Encrypt, dlatego całą procedurę trzeba wykonać ręcznie. Na szczęście nie jest to aż tak skomplikowane.
Czym w ogóle jest Let’s Encrypt?
Let’s Encrypt to darmowy i otwarty CA (Certificate Authority, urząd certyfikacji). Umożliwia wygenerowanie darmowych certyfikatów TLS (Transport Layer Security), oferuje także zestaw narzędzi do zarządzania nimi oraz automatycznej integracji z serwerami (Certbot). Celem tego projektu jest upowszechnienie bezpiecznej, szyfrowanej komunikacji (HTTPS). Niektóre hostingi udostępniają zautomatyzowaną obsługę tych certyfikatów, niestety wciąż nie jest to zbyt popularne rozwiązanie (listę można znaleźć np. tutaj; https://community.letsencrypt.org/t/web-hosting-who-support-lets-encrypt/6920 – z bardziej znanych jest m. in. OVH).
Generowanie certyfikatu
Niestety Hekko nie udostępnia dostępu SSH (przynajmniej w moim pakiecie), nie ma więc możliwości posłużyć się rekomendowanym narzędziem, czyli Certbotem. Całą procedurę trzeba wiec wykonać ręcznie, co gorsza, powtarzać ją co trzy miesiące (bo przez taki czas jest ważny certyfikat).
Do wygenerowania certyfikatu podpisanego przez Let’s Encrypt użyłam ZeroSSL (https://zerossl.com/free-ssl/#crt), opcja „FREE SSL Certificate Wizard„. Należy wpisać tylko adres e-mail (choć i on jest opcjonalny) i domenę, zaakceptować warunki i kliknąć parę razy „Next”. Wygenerowane zostaną kolejno: CERTIFICATE REQUEST
, RSA PRIVATE KEY
, a na końcu CERTIFICATE
i account ID
. Wszystkie te dane należy skopiować i zapisać sobie gdzieś, będą potrzebne w dalszych krokach.
Certyfikat wygenerowany w ZeroSSL składa się z (dokładnie w takiej kolejności):
- certyfikatu domeny („domain certificate”)
- certyfikatu wydawcy (w konfiguracji hostingu może być nazwany: „Intermediate certificate”, „Certificate chain”, „CA Bundle”).
Instalacja na serwerze
Po zalogowaniu do Direct Admin:
- W opcji „Zarządzanie domenami”:
- zaznaczyć checkbox „Bezpieczny SSL” i zapisać zmiany
- zaznaczyć checkbox „Użyj dowiązania symbolicznego private_html do public_html” i zapisać zmiany
- W ustawieniach zaawansowanych, opcji „Certyfikaty SSL”:
- wybrać opcję „Wklej wygenerowany certyfikat i klucz”
- wkleić prywatny klucz RSA i podpisany certyfikat (pierwszy certyfikat pomiędzy:
-----BEGIN CERTIFICATE-----
i-----END CERTIFICATE-----
oraz klucz oznaczony:
-----BEGIN RSA PRIVATE KEY-----
aż po-----END RSA PRIVATE KEY-----
), zapisać.
Skopiować należy wszystko, łącznie z nagłówkiem:
-----BEGIN CERTIFICATE-----
i-----END CERTIFICATE-----
itd. - kliknąć na „Kliknij tutaj aby wkleić Certyfikat root CA” (na dole strony)
- wkleić certyfikaty pośrednie (drugi certyfikat pomiędzy;
-----BEGIN CERTIFICATE-----
a-----END CERTIFICATE-----
) - zaznaczyć checkbox „Użyj certyfikatu centrum certyfikacji”
- zapisać zmiany.
Przekierowanie
Jeśli chcemy, aby odwołania przez HTTP były automatycznie przekierowane do HTTPS, należy zmodyfikować plik .htaccess dodając linijki:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Weryfikacja
Do zweryfikowania poprawności certyfikatu, poza własną przeglądarką (pamiętając o https:// i wyczyszczeniu pamięci przeglądarki), można użyć narzędzi takich jak na przykład https://www.sslshopper.com/ssl-checker.html lub inne. Wyświetlają one różne informacje na temat zastosowanego certyfikatu, w tym datę jego wygaśnięcia, wydawcę i inne.