Info

W systemach windowsowych, korzystając ze zintegrowanego RootCA nie ma większych problemów – wystarczy w IISie wygenerować żądanie online do RootCA w domenie, i za sekundę pojawia się gotowy certyfikat. Jeśli RootCA nie jest w domenie, nadal jest to proces półautomatyczny – żądanie generowane jest do pliku textowego, zawartość pliku wkleja się na stronie żądania certyfikatu, administrator go zatwierdza – i za chwile możemy ściągnąć go ze strony.
Sprawa ma się trochę inaczej w przypadku żądania certyfikatu do zewnętrznego urzędu certyfikacyjnego – jak polskie Certum czy zagraniczne Thawte. Pozostaje też kwestia generowania żądania z innej platformy lub dla innej aplikacji. Proces jest bardziej skomplikowany i jeśli wcześniej się tego nie robiło, można spędzić trochę czasu.
Poniższy art nie jest dla osób uczących się czym jest PKI lub o co wogóle chodzi z certyfikatmi – jest wyłącznie skróconą instrukcją dla osób, które mają potrzebę zakupienia certyfikatu, a nie za bardzo wiedzą jak takie żądanie przygotować – niezależnie od platformy i aplikacji, korzystając z OpenSSL.

Jak utworzyć żądanie

Podstawą wiarygodności cartyfikatów jest bezpieczeństwo klucza prywatnego. Podczas generowania żądania certyfikatu tworzony jest klucz prywatny, oraz sama 'treść’ żądania. Zadaniem urzędu certyfikacyjnego jest wygenrowanie klucza publicznego. Po połączniu go z wygenerowanym uprzednio kluczem prywatnym otrzymujemy finalny certfyikat, który można użyć np. do zakodowania ruchu z aplikacji. Podstawową informacją jest fakt, iż klucz prywatny nigdy i nigdzie nie jest udostępniany. Firma generująca certyfikat również nie jest w stanie odtworzyć klucza prywatnego – w innym wypadku, posiadałaby olbrzymią władzę nad wszystkimi swoimi klientami.
Do wygenerowania klucza prywatnego wraz z żądaniem można użyć OpenSSL, który dostępny jest na większość platform, również dla Windows.

  1. Po zainstalowniu w utworzonym katalogu należy wykonać polecenie:
    openssl genrsa -des3 -out private.key 1024
    Jego skutkiem będzie utworzenie klucza prywatnego o długości 1024 bity.
    nazwa klucza (private.key) może być określona w sposób bardziej wyróżniający, np. my.domain.pl.priv.key .

  2. Dla utworzonego klucza wydać polecenie utworzenie żądania (CSR):
    openssl req -new -key private.key -out request.csr
    private.key zawiera klucz utworzony w pkt.1, request.csr jest textowym plikiem wynikowym, zawierającym treść żądania certyfikatu.
  3. Podczas tworzenia żądania pojawiać się będą kolejne pytania, dotyczące podmiotu, żądającego certyfikat. Informacje te muszą być prawdziwe, i będą weryfikowane przez urząd certyfikacyjny. Nie można tak po prostu zażądać certyfikatu www.microsoft.com czy np. banku. Podczas składania wniosku, należy mieć odpowiednie upoważnienia oraz należy wykazać, iż ma się odpowiednie uprawnienia, dla danego certyfkatu:
    
    Country Name:     PL
    State:            mazowieckie
    Locality:         Warszawa
    Organization:     nazwa firmy, np. LogicUnion
    Oranizational U:  nazwa jednostki firmy, np. IT
    Common name:      ssl.logicunion.pl
    Email Address:    nexor@logicunion.pl
    

    Pozostałych danych przeważnie się nie wypełnia (należy zakończyć Enterem).

  4. Teraz trzeba przekazać uwtorzone żądania (zapisane w plikach .csr) do odpowiedniego urzędu. Przeważnie polega to na przeklejeniu zawartości pliku do odpowiedniego pola formularza na stronie urzędu.
  5. Po przesłaniu żądania należy oczekiwać na zakończenie procesu weryfikacji. Jeśli firma jest polska, przeważnie trzeba udać się z należytymi dokumentami do placówki firmy. W przypadku zagranicznego urzędu, sprawdzana jest torzsamość żądającego, czasem trzeba skontaktować się i potwierdzić to poprzez odpowiedni dokument.
  6. Po akceptacji i weryfikacji przesyłana jest informacja zwrotna, zawierająca link do wygenrowanego certyfikatu. Należy wyświetlić wydany certyfikat i skopiować jego zawartość (z liniami —BEGIN […]
    END —-) do pliku [np. publiccertificate.crt].
  7. Pozostaje połącznia klucza (private.key) z wygenerowanym certyfikatem, w finalną paczkę (plik .p12). W tym celu należy wykonać polecenie:
    openssl pkcs12 -export -out finalcert.p12 -inkey private.key -in publiccertificate.crt
    finalcert.p12 będzie certyfikatem zawierającym klucz prywatny. Zarówno plik public.key jak i ten certyfikat, są krytycznymi dla bezpieczeńtwa elementami całego procesu. Należy odpowiednio je zabezpieczyć tak, aby nigdy nie trafiły w niepowołane ręce.
  8. Przygotowane certfyikaty przenieść na serwery produkcyjne:
    • otworzyć konsolę mmc z linii komend
    • dodać przystawkę Certyfikaty (Konto komputera)
    • w magazynie Certyfikatów Osobistych (konto komputera) zaimportować cert przygotowany za pomocą Openssl-a (.p12)
    • jeśli certyfikat urzędu wystawiającego cert nie jest standrowo w systemie, należy dodatkowo zaimportować ten cert, aby uzupełnić scieżkę zaufania. Np. dostępny jest cert CERTUM level 1, ale zakupowane certyfikaty wystawiane są przez CERTUM level 2. Aby nie pojawiał się komunikat o niezaufanym certyfikacie, należy certyfikat tego urzędu dodać do magazynu w systemie.

ReFs

-o((:: sprEad the l0ve ::))o-