Posiadanie łasnego "urzędu certyfikacji" CA (certificate authority) pozwala na tworzenie dowolnej liczby certyfikatów które można łatwo zweryfikować posługując się jednym zaufanym kluczem publicznym naszego własnego "urzędu".

Poniżej przedstawiona jest procedura pozwalająca na wygenerowanie certyfikatu CA i kluczy CA a następnie kolejnych certyfikatów zależnych.

  1. Tworzenie klucza CA
  2. Tworzenie certyfikatu CA i podpisanie go kluczem CA
  3. Tworzenie kluczy dla certyfikatu zależnego
  4. Tworzenie certyfikatu zależnego i podpisywanie kluczem zależnym
  5. Użycie certyfikatu CA do podpisania certyfikatu zależnego
  6. Pliki niezbędne dla serwera do funkcjonowania certyfikatu
  7. Weryfikacja prawidłowości działania certyfikatu serwera
  8. Konwersja na z CRT na PEM

Tworzenie pary kluczy CA

openssl genrsa -aes256 -out ca.key 2048

Tworzenie certyfikatu CA i podpisanie go kluczem CA

openssl req -new -x509 -days 9999 -key ca.key -out ca.crt

Tworzenie kluczy dla certyfikatu zależnego

openssl genrsa -out server.key 2048

Tworzenie certyfikatu zależnego i podpisywanie kluczem zależnym

Teraz towrzymy żądanie utworzenia certyfikatu (.csr). Wypełnić należy pole common name - zwykle to domena pod którą będzie pracował serwer posługujący się certyfikatem. Można również użyć adresu IP maszyny dla której wystawiamy certyfikat. openssl req -new -out server.csr -key server.key

Użycie certyfikatu CA do podpisania certyfikatu zależnego

Teraz używamy klucza CA do zweryfikowania i podpisania żądania utworzenie certyfikatu serwera. Wygenerowany zostanie plik server.crt. openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 9999

Pliki niezbędne dla serwera do funkcjonowania certyfikatu

Dla serwera potrzebne są tylko poniższe pliki:

  • ca.crt
  • server.crt
  • server.key Pod żadnym pozorem nie wolno z tak wystawionym certyfikatem dla serwera przekazywać pliku ca.key

Plik ca.crt musi być dostępny dla każdego klienta który będzie się łączył z serwerem który posługuje się ceryfikatem wygenerowanym według powyższej procedury.

Weryfikacja prawidłowości działania certyfikatu serwera

Polecenie openssl verify -CAfile ca.crt server.crt sprawdza czy plik .crt serwera jest wydany przez nasz CA i jest prawidłowo podpisany. Termin ważności certyfikatu można sprawidzić używając polecenia openssl x509 -enddate -noout -in server.crt

Konwersja na z CRT na PEM

Niektóre programy wykorzystują certyfikaty w formie plików PEM. Nasze CRT możemy łatwo przekonwertować do PEM używając polecnia: openssl x509 -in server.crt -out server.pem -outform PEM Warto zaznaczyć, że standardowo wygenerowane pliki mimo rozszerzenia .crt mogą być plikami .pem - plik pem zaczyna się od -----BEGIN i nie jest plikiem binarnym.

Poprzedni wpis Następny wpis