Komputer (stację roboczą) oraz serwer z systemem Rocky Linux (OK, Linux, ale przecież będziesz chciał mieć Rocky Linux, prawda ?)
Zainstalowany OpenSSL na maszynie, na której będziesz generować prywatny klucz oraz CSR, jak również na serwerze, gdzie będziesz finalnie instalował swój klucz i certyfikaty
Umiejętności komfortowej pracy w konsoli
Będą pomocne: wiedza i znajomośc komend SSL i OpenSSL
Niemal wszystkie współczesne strony webowe powinny mieć podłączony pod siebie certyfikat SSL (secure socket layer). Ta procedura przeprowadzi Cię przez proces generowania klucza prywatnego dla Twojej strony, a później, wygenerowania CSR (certificate signing request), który będzie Ci potrzebny do zakupienia samego certyfikatu.
Dla niewtajemniczonych, klucze prywatne SSL mogą mieć różne wielkości, mierzone w bitach, które w zasadzie determinują jak trudne do złamania będą to klucze.
Od 2021, zalecana długość klucza dla strony webowej wynosi 2048 bitów. Możesz wprawdzie ją zwiększyć, ale podwajając długość klucza z 2048 do 4096 podniesiesz poziom bezpieczeństwa tylko o ok. 16%, natomiast taki klucz zajmuje więcej miejsca oraz spowokuje większe obciążenia CPU podczas jego przetwarzania.
Taki krok spowolni tylko działanie Twojej strony nie dając Ci żadnej znaczącej poprawy bezpieczeństwa. Dlatego na razie zaleca się pozostanie przy kluczu długości 2048 bitów aczkolwiek dobrze jest śledzić na bierząco wszelkie zmiany w tym zakresie.
Zaczynając, upewnijmy się że OpenSSL jest zainstalowany na obu maszynach, stacji roboczej oraz serwerze:
dnf install openssl
Jeśli pakiet OpenSSL nie był dotąd zainstalowany po wydaniu tego polecenia system operacyjny pobierze i zainstaluje go wraz ze wszystkimi zależnościami.
Naszą przykładową domeną niech będzie ourownwiki.com. Musisz pamiętać że musisz ją wykupić i zarejestrować zanim zaczniesz zabawę z SSL. Możesz zrobić to z pomocą jednej z szeregu firm rejestrującej domeny.
Jeśli nie posiadasz własnego serwera DNS (Domain Name System), możesz użyć serwerów DNS Twojego providera. DNS tłumaczy nazwę domenową na ciąg cyfr (adres IP w wersji IPv4 lub IPv6) który rozumie Internet. Twoja strona strona jest hostowana na serwerze pod konkretnym adresem IP.
A więc wygenerujmy klucz używając do tego openssl:
Zauważcie, nazwaliśmy od razu nasz klucz nadając mu także rozszerszenie .pass . Jak tylko wykonamy tą komendę program poprosi nas o podanie hasła (passphrase). Tutaj sugestia - podajmy krótkie hasło które zapamiętamy, gdyż i tak za chwilę będziemy go usuwać.
Enter pass phrase for ourownwiki.com.key.pass:
Verifying - Enter pass phrase for ourownwiki.com.key.pass:
Nastepnie, usuńmy to hasło. Powód takiego działania jest prosty, jeśli tego nie zrobimy to nasz serwer po każdorazowym restarcie podczas ładowania nszego klucza będzie prosił o hasło.
Możemy nie móc za każdym razem go wprowadzać, albo nawet nie mieć wtedy dostępnej konsoli. Dlatego usuwamy go żeby uniknąć takich sytuacji.
Następnym krokiem jest wygenerowanie CSR (certificate signing request) którego użyjemy podczas zakupu naszego certyfikatu.
Podczas procesu generowania CSR będziemy proszeni o podanie szeregu informacji. Będą to arybuty X.509 dla naszego certyfikatu.
Jednym z pierwszych informacji będzie podanie "Common Name (np. Twojej nazwy)". To ważne żeby to pole zawierało FQDN (Fully Qualified Domain Name) naszej strony która ma być chroniona protokołem SSL. Jeśli strona którą zamierzamy chronić ma miec adres https://www.ourownwiki.com to w tym polu podajemy ciąg www.ourownwiki.com :
Country Name (2 letter code) [XX]: wprowadź 2 literowy kod kraju gdzie będzie tTwoja strona, np."US"
State or Province Name (full name) []: wprowadź pełną oficjalną nazwę stanu lub prowincji, np. "Nebraska"
Locality Name (eg, city) [Default City]: wprowadź pełną nazwę miasta, np. "Omaha"
Organization Name (eg, company) [Default Company Ltd]: jeśli chcesz, możesz tu podać nazwę Organizacji które częścią jest Twoja domena, lub po prostu nacisnąc Enter i przejść dalej
Organizational Unit Name (eg, section) []: to pole określa dział w Organizacji gdzie będzie podlegać Twoja domena. Jak wyżej możesz pominąć naciskając Enter
Common Name (eg, your name or your server's hostname) []: tutaj musisz podać nazwę serwisu np. "www.ourownwiki.com"
Email Address []: to pole jest opcjonalne, jeśli nie chcesz go wypełnić po prostu naciśnij Enter
Nastepnie zostaniesz poproszony o podanie dodatkowych atrybutów (oba można pominąć Enterem)
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Po zakończeniu podawania wszystkich atrybutów zostanie wygenerowany nasz CSR.
Każdy dostawca certyfikatów powinien mieć w zasadzie tą samą procedurę. Kupujesz SSL, określasz zakres czasowy (1 lub 2 lata) na jaki ma obowiązywać a potem wgrywasz swój CSR. Żeby wyświetlić sobie zawartość CSR użyj komendy more, po czym skopiuj tą zawartość.
Powinieneś skopiować wszystko razem z liniami BEGIN CERTIFICATE REQUEST oraz END CERTIFICATE REQUEST. Następnie wklej skopiowaną zawartość w pole CSR w serwisie za pomocą którego kupujesz certyfikat SSL.
Być może będziesz musiał wykonać inne kroki weryfikacyjne, w zależności od własności domeny, używanego rejestratora itp., zanim Twój certyfikat zostanie wystawiony. Kiedy go otrzymasz, będzie razem z nim wydany certyfikat pośredni od providera (serwisu w którym kupujesz certyfikat SSL), który będziesz potrzebować razem z właściwym certyfikatem do poprawnego skonfigurowania swojego serwisu.
Podsumowując, zakup certyfikatu SSL dla Twojego serwisu webowego nie jest czymś niewiarygodnie trudnym i może być łatwo zrealizowany za pomocą powyższej procedury przez administratora systemu bądź samego serwisu.