Nic trudnego, ale zawsze gdy tworzę certyfikat (a robię to co kilka miesięcy) kończy się to zwykle ponownym przeglądaniem Internetu. Poniżej zamieszczam procedurę, która zadziała w większości wypadków.
Potrzebujemy:
- strony hostującej naszą stronę
- utworzyć żądanie z certyfikatem – CSR (najprościej pod linuksem lub macos lub w podsystemie linux w windowsie)
- przesłać certyfikat do instytucji certyfikującej
- potwierdzić, że strona (domena) należy do nas
- zainstalować certyfikat u naszego providera hostującego naszą stronę
Listę instytucji certyfikujących można łatwo odnaleźć w Internecnie. Ja ostatnio skorzystałem z promocji na stronie namecheap gdzie udało mi się zakupić roczny certyfikat za 3$ 😉
Inna możliwość to skorzystanie z certyfikatu Let’s Encrypt https://letsencrypt.org/ gdzie można za darmo utworzyć certyfikat. Przydaje się to jedynie do testów bądź w sytucaji gdy nasz dostawca hostingowy zaimplementował automatykę do odnawiania certyfikatu. Let’s Encrypt generuje darmowy certyfikat ważny tylko przez 3 mc-e.
Bez automatyki można oczywiście odnawiać ten certyfikat samodzielnie za pomocą zainstalowanego certbot na swoim komputerze i ręcznego odświeżania na stronie ale na koniec dnia jest dosyć kłopotliwe.
Tworzenie żądania certyfikatu CSR
Na stacji ze środowiskiem “uniksowym” za pomocą polecenia:
sudo openssl req -new -newkey rsa:2048 -nodes -keyout nazwa_domeny.key -out nazwa_domeny.csr
Polecenie to tworzy dwa pliki wynikowe:
- nazwa_domeny.key – to jest klucz prywatny, plik jest bardzo ważny i wykorzystamy go później przy instalacji
plik ten zaczyna i kończy się następującymi liniami:
—–BEGIN PRIVATE KEY—–
klucz
—–END PRIVATE KEY—– - nazwa_domeny.csr – CSR który musimy skopiować dostawcy certyfikatu. Plik ten ma następujący format:
—–BEGIN CERTIFICATE REQUEST—–
certyfikat
—–END CERTIFICATE REQUEST—–
Formularz można wypełnić w następujący sposób:
Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:wielkopolskie
Locality Name (eg, city) []:Poznan
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizacja
Organizational Unit Name (eg, section) []:Dzial
Common Name (e.g. server FQDN or YOUR name) []:nazwa_domeny.XXX
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Ważne są pola które uzupełniłem powyżej. Najważniejsze z nich to “common name” które musi odpowiadać nazwie naszej domeny. Pamiętaj, że domena “jakas-nazwa.xxx” to inna domena niż “www.jakas-nazwa.xxx”. Jeśli nie planujesz kupić certyfikatu typu wildcard musisz o tym pamiętać. Niektóre instytucje certyfikujące uwzględniają to przy generowaniu certyfikatu – inne nie.
Pola: e-mail address, challenge password, optional company name należy traktować jako deprecated i mogą pozostać puste.
Uwaga, czasem należy wklejać pierwszą i ostatnią linię a czasem nie. Zależy to od naszego dostawcy hostingu i certyfikatu i należy dokładnie czytać instrukcję.
CSR i private key można utworzyć również na stronie https://csrgenerator.com/ Pytanie tylko, czy chcemy się dzielić kluczem prywatnym z jakąś firmą trzecią.
Potwierzenie, że strona (domena) należy do nas
Można to zrobić na wiele sposobów. Zwykle umożliwia się wprowadzenie odpowiednich modyfikacji do strony internetowej lub potwierdzenie za pomocą e-mail (konkretnych adresów e-mail w naszej domenie internetowej; przyładem takiego użytkownika zwykle wykorzystywanym jest webmaster@nasza-domena.xx).
Po potwierdzeniu, powinniśmy otrzymać plik CRT z certyfikatem który umieszczamy na stronie. Plik CRT ma następujący format:
—–BEGIN CERTIFICATE—–
certyfikat
—–END CERTIFICATE—–
Instalacja certyfikatu u naszego dostawcy hostingu
W zależności od firmy hostującej wygląda to trochę inaczej. Ale zwykle sprowadza się to do wklejenia kombinacji certyfikatu CRT oraz klucza prywatnego.
Podsumowanie
Procedura jest prosta natomiast jest wiele miejsc w których można potencjalnie popaść w problemy. Wiele zależy od firmy hostującej i zawsze warto poszukać dokumentacji lub ewentualnie skontaktować się z jej pomocą techniczną. Warto też poświęcić trochę czasu przy zakupie certyfikatu, różnica cenowa waha się od kilku do kilkudziesięciu dolarów.
No Comments