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.csrPo 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.crtwyjaś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
