Dwie przeszkody, jakie napotykają deweloperzy przy migracji do protokołu HTTPS, to koncepcje i terminologia. Niniejszy przewodnik zawiera krótkie omówienie obu tych metod.
Podsumowanie
- Użyto kluczy publicznych/prywatnych do podpisywania i odszyfrowywania wiadomości między przeglądarką a serwerem.
- Urząd certyfikacji to organizacja, która odpowiada za mapowanie między kluczami publicznymi a publicznymi nazwami DNS (na przykład „www.foobar.com”).
- Żądanie podpisania certyfikatu to format danych, który grupuje klucz publiczny wraz z metadanymi dotyczącymi podmiotu, do którego należy klucz.
Jakie są pary kluczy (publicznego i prywatnego)?
Para kluczy publiczny/prywatny to para bardzo dużych liczb używanych jako klucze szyfrowania i odszyfrowywania oraz łącząca ich specjalną zależność matematyczną. Typowym systemem dla par kluczy jest kryptosystem RSA. Klucz publiczny jest używany do szyfrowania wiadomości, które można odszyfrować tylko za pomocą odpowiedniego klucza prywatnego. Serwer reklamuje swój klucz publiczny do świata, a klienty (takie jak przeglądarki) używają go do zablokowania bezpiecznego kanału serwera.
Co to jest urząd certyfikacji?
Urząd certyfikacji to organizacja, która odpowiada za mapowanie między kluczami publicznymi a publicznymi nazwami DNS (np. „www.foobar.com”). Na przykład skąd klient może sprawdzić, czy dany klucz publiczny jest true (prawda) kluczem publicznym witryny www.foobar.com? A priori, nie da się tego sprawdzić. Urząd certyfikacji potwierdza, że dany klucz jest prawidłowy dla danej witryny, używając własnego klucza prywatnego do kryptograficznego podpisywania klucza publicznego witryny. Podrobienie tego podpisu jest technicznie niemożliwe do sfałszowania. Przeglądarki (i inne klienty) utrzymują magazyny kotwic zaufania zawierające klucze publiczne należące do dobrze znanych urzędów certyfikacji i używają tych kluczy do kryptograficznej weryfikacji podpisów urzędu certyfikacji.
Certyfikat X.509 to format danych, który zawiera klucz publiczny w pakiecie z metadanymi dotyczącymi jednostki, do której należy klucz. W przypadku internetu właścicielem klucza jest operator witryny, a ważnymi metadanymi jest nazwa DNS serwera WWW. Gdy klient łączy się z serwerem WWW z protokołem HTTPS, serwer WWW przedstawia swój certyfikat w celu weryfikacji. Klient sprawdza, czy certyfikat nie wygasł, czy nazwa DNS jest zgodna z nazwą serwera, z którym klient próbuje się połączyć, oraz czy znany urząd certyfikacji kotwicy zaufania podpisał certyfikat. W większości przypadków urzędy certyfikacji nie podpisują bezpośrednio certyfikatów serwera WWW. Zwykle istnieje łańcuch certyfikatów łączący kotwicę zaufania z pośrednim sygnatariuszem lub podpisującym, a na koniec z własnym certyfikatem serwera WWW (jednostkam końcowym).
Co to jest żądanie podpisania certyfikatu?
Żądanie podpisania certyfikatu to format danych, który, podobnie jak certyfikat, łączy klucz publiczny z metadanymi dotyczącymi podmiotu, do którego należy klucz. Jednak klienty nie interpretują takich żądań, a urzędy certyfikacji – tak. Gdy chcesz uzyskać weryfikację urzędu certyfikacji dla klucza publicznego serwera WWW, wysyłasz odpowiednie żądanie. Urząd certyfikacji weryfikuje informacje zawarte w żądaniu podpisania certyfikatu i używa ich do wygenerowania certyfikatu. Urząd certyfikacji wysyła Ci ostateczny certyfikat, a następnie instalujesz ten certyfikat (lub, co bardziej prawdopodobne, łańcuch certyfikatów) oraz klucz prywatny na serwerze WWW.