Jestem odpowiedzialny za utrzymanie dwóch serwerów Debiana. Za każdym razem, gdy muszę robić cokolwiek z certyfikatami bezpieczeństwa, korzystam z samouczków Google i staram się, aż w końcu zadziała.
Jednak w swoich poszukiwaniach często natknąć różnych formatach ( .key
, .csr
, .pem
), ale nigdy nie byłem w stanie znaleźć dobre wyjaśnienie w jakim celu każdy format pliku jest.
Zastanawiałem się, czy dobrzy ludzie tutaj w ServerFault mogliby wyjaśnić tę sprawę?
certificate
pki
Noah Goodrich
źródło
źródło
Odpowiedzi:
SSL istnieje już wystarczająco długo, można by pomyśleć, że zostaną uzgodnione formaty kontenerów. I masz rację, są. Zbyt wiele norm, jak to się dzieje. Więc o tym wiem i jestem pewien, że inni się do niego włączą.
/etc/ssl/certs
) lub może obejmować cały łańcuch certyfikatów, w tym klucz publiczny, klucz prywatny i certyfikaty główne. Myląco może również kodować CSR (np. W znaczeniu stosowanym tutaj ), ponieważ format PKCS10 można przetłumaczyć na PEM. Nazwa pochodzi od Privacy Enhanced Mail (PEM) , nieudanej metody bezpiecznej poczty e-mail, ale używany format kontenera nadal istnieje i jest to tłumaczenie base64 kluczy ASN.1 x509./etc/ssl/private
. Prawa do tych plików są bardzo ważne, a niektóre programy odmówią załadowania tych certyfikatów, jeśli zostaną ustawione nieprawidłowo.openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes
Kilka innych formatów, które pojawiają się od czasu do czasu:
openssl x509 -inform der -in to-convert.der -out converted.pem
). System Windows widzi je jako pliki certyfikatów. Domyślnie system Windows eksportuje certyfikaty jako pliki w formacie .DER z innym rozszerzeniem. Lubić....keystore
zamiast tego używa jako rozszerzenia. W przeciwieństwie do certyfikatów w stylu .pem, ten format ma zdefiniowany sposób dołączania certyfikatów ścieżki certyfikacji.Podsumowując, istnieją cztery różne sposoby prezentowania certyfikatów i ich komponentów:
Mam nadzieję, że to pomoże.
źródło
ssh-keygen
. Przydałoby się wiedzieć, jak to się łączy z resztą.Sam PEM nie jest certyfikatem, jest tylko sposobem kodowania danych. Certyfikaty X.509 to jeden typ danych, który jest powszechnie kodowany za pomocą PEM.
PEM jest certyfikatem X.509 (którego struktura jest zdefiniowana za pomocą ASN.1), zakodowana za pomocą ASN.1 DER (wyróżnione reguły kodowania), a następnie przebiega przez kodowanie Base64 i utknęła między zwykłymi liniami kotwiczącymi (POCZĄTEK CERTYFIKATU I KONIEC CERTYFIKATU ).
Możesz reprezentować te same dane za pomocą reprezentacji PKCS # 7 lub PKCS # 12, a do tego celu można użyć narzędzia wiersza polecenia openssl.
Oczywistą zaletą PEM jest to, że można go bezpiecznie wkleić do treści wiadomości e-mail, ponieważ ma ona linie kotwiczne i jest 7-bitowa.
RFC1422 zawiera więcej szczegółów na temat standardu PEM, ponieważ dotyczy kluczy i certyfikatów.
źródło
openssl x509 -inform der -in cert.cer -out cert.pem
. Aby przekonwertować plik PEM do DER:openssl x509 -outform der -in cert.pem -out certi.der
. Aby przekonwertować plik PKCS # 12 (.pfx .p12) zawierający klucz prywatny i certyfikatów PEM:openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
. Aby przekonwertować plik certyfikatu PEM oraz prywatny klucz do PKCS # 12 (.pfx .p12):openssl pkcs12 -export -out cert.pfx -inkey privateKey.key -in cert.crt -certfile CACert.crt
Od tutajCzasami
.crt
plik jest już.pem
. Zobacz: https://stackoverflow.com/questions/991758/openssl-pem-keyźródło
.foobar
wszystko, co ważne ...