Certyfikaty – o co tu chodzi?

Certyfikaty dotyczą klucza publicznego i potwierdzają tożsamość posiadacza klucza. Wydawane są przez urząd certyfikacji (Certificate Authority).

Po co są certyfikaty?

Przede wszystkim aby połączyć tożsamość z kluczem publicznym. Dzięki temu każdy klient (osoba/urządzenie używające klucza publicznego) może sprawdzić z kim się komunikuje (po prostu czyj jest to klucz publiczny).

Co zawiera certyfikat?

  • Klucz Publiczny (Public Key [PK]) + informacje o kluczu (takie jak na przykład długość klucza)
  • Informacje o właścicielu certyfikatu:
    • Nazwa domeny (Common Name [CN]), przykładowo www.test.pl
    • Organizacja (Organization [O]) i Jednostka Organizacyjne (Organizational Unit [OU])
    • i inne takie jak: kraj, kod kraju, prowincja
  • Okres ważności certyfikatu (data od i do)
  • Dane urzędu certyfikującego (Certificate Authority [CA])
  • Podpis certyfikatu (podpisany kluczem prywatnym CA i może być zweryfikowany kluczem publicznym CA) + algorytm użyty do podpisu
  • Numer seryjny certyfikatu
  • Adresy do list CRL i OCSP (na tych listach można sprawdzić czy certyfikat nie został unieważniony)
  • Rozszerzenia certyfikatu

Jak uzyskać certyfikat dla mojego klucza publicznego?

Certyfikat można uzyskać na dwa sposoby:
– ubiegać się o certyfikat w urzędzie certyfikującym (CA)
– samemu wygenerować (self-signed certificate)

Tworzenie pliku żądania podpisania certyfikatu – csr (Certificate Signing Request)

Niezależnie czy chcemy sami podpisać certyfikat, czy chcemy poprosić urząd od podpis, potrzebny jest nam plik żądania podpisania certyfikatu. Możemy do tego użyć następującej komendy:

openssl req -new -key private_key.pem -out mydomain.csr

Po uruchomieniu komendy będziemy poproszeni o dodatkowe informacje. Coś w tym stylu:

Podpis przez urząd certyfikujący (CA)

Aby uzyskać podpis od urzędu certyfikującego należy udać się (lub skontaktować się z) do jednego z nich. Przykładowe urzędy to:
https://letsencrypt.org/
https://www.digicert.com/
https://www.kir.pl/
https://www.certum.eu/

Podpis samemu (self-signed certificate)

Należy tutaj zaznaczyć, że taki podpis nie będzie respektowany przez przeglądarki. Jest on do zaakceptowania w środowiskach testowych i wewnętrznych.

Aby samemu podpisać certyfikat użyjemy następującej komendy:

openssl x509 -req -days 365 -in mydomain.csr -signkey private_key.pem -out mydomain.crt

wyjaśnienie parametrów:
x509 – jest to standard certyfikatów klucza publicznego (rzadziej używane są inne, np, PGP)
– -req – informacja, że jest to żądanie podpisu
– -days 365 – na ile dni jest podpisany certyfikat
– -in mydomain.csr – na podstawie jakiego pliku csr ma być wygenerowany podpisany certyfikat
– -signkey private_key.pem – jaki klucz prywatny ma służyć do podpisu
– -out mydomain.crt – gdzie ma wylądować podpisany certyfikat

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *