31 grudnia 2018

Jak ustawić SSL

Postanowiłem kupić certyfikat ssl dla domeny ifcode.pl
Korzystając z okazji skleiłem poniższy wpis aby pomóc innym którzy chcą ssl dla swoich domen.

Krok 1. Gdzie kupić ?

Szukałem w internecie fajnych ofert na certyfikaty ssl. Trafiłem ostatecznie na stronę domeny.pl (należy do większej grupy: certyfikaty.ssl). Wybrałem SuperFAST SSL.

Krok 2. Konfiguracja SSL

Po wyborze i opłaceniu, otrzymamy prosty formularz w którym należy wybrać opcje wygenerowania klucza CSR (chyba że taki już posiadamy).
Aby klucz CSR wygenerować musimy podać swoje dane (lub swojej firmy), nazwę domeny i kilka innych parametrów (te techniczne są domyślnie już uzupełnione co mocno ułatwia sprawę).

Po wygenerowaniu klucza CSR musimy wybrać metodę walidacji domeny. Możemy na serwer wrzucić wygenerowany przez system plik lub wybrać inną metodę.
Ja wybrałem metodę walidacji DNS CNAME DCV, aby taką walidację ukończyć pomyślnie, należy u operatora domeny ustawić nowy rekord DNS typu CNAME i ustawić mu nazwę oraz wartość o którą poprosi nas system za pośrednictwem formularza.

Krok 3. Ustawienia serwer

Pobierzmy swój private key który otrzymaliśmy oraz certyfikat jak również łańcuch certyfikatu (ROOT/Intermediate CA).
Łańcuch certyfikatu (Root/Intermediate CA) łączymy z certyfikatem przy pomocy jakiegoś edytora tekstu i zapisujemy do pliku .crt

Otwieramy konfigurację nginx i ustawiamy:

server {
     listen 443;
     ssl on;
     
     ssl_certificate_key {ścieżka do pliku .key}
     ssl_certificate {ścieżka do pliku crt}
     ssl_protocols TLSv1.1 TLS1.2;
     ssl_prefer_server_ciphers on;
     ssl_stapling on;
     ssl_stapling_verify on;
}

Oczywiście zmieniamy listen z 80 na 443, ponieważ na tym porcie teraz nasłuchujemy ruchu, uruchamiamy ssl, wpisujemy ścieżki do stworzonych wcześniej plików.

Celowo pominąłem elementy związane z prawidłowym działaniem strony, tzn związane z php czy ładowaniem plików ponieważ nie jest to powiązane z tym wpisem.