Jakie są różnice między .pem
, .cer
i .der
?
O ile wiem, .cer
zawiera klucz publiczny. Czy istnieją otwarte platformy, których mogę użyć do zaszyfrowania moich danych za pomocą tego klucza publicznego?
Jakie są różnice między .pem
, .cer
i .der
?
O ile wiem, .cer
zawiera klucz publiczny. Czy istnieją otwarte platformy, których mogę użyć do zaszyfrowania moich danych za pomocą tego klucza publicznego?
cp
komenda .cer do .der może zrobić :)
Odpowiedzi:
.pem
, .cer
i.der
wszystkie są rozszerzeniami plików, które mogą zawierać certyfikat X.509 v3.
.der
rozszerzenieDER to metoda kodowania danych składających się na certyfikat. Sam DER może reprezentować dowolny rodzaj danych, ale zwykle opisuje zakodowany certyfikat lub kontener CMS.
Struktura certyfikatu opisana jest za pomocą języka reprezentacji danych ASN.1. BER i DER to binarne metody kodowania danych opisane przez ASN.1.
.pem
rozszerzeniePEM to metoda kodowania danych binarnych jako ciąg znaków (zbroja ASCII). Zawiera nagłówek i linię stopki (określające typ danych, które są kodowane i pokazujące początek / koniec, jeśli dane są połączone razem), a dane w środku to dane bazowe 64. W przypadku, gdy szyfruje certyfikat, zawierałby po prostu podstawowe kodowanie 64 certyfikatu DER. PEM to skrót od Privacy Enhanced Mail; mail nie może bezpośrednio zawierać niezakodowanych wartości binarnych, takich jak DER.
PEM może również kodować / chronić inne rodzaje danych, które są związane z certyfikatami, takie jak klucze publiczne / prywatne, żądania certyfikatów itp. Jeśli zawartość jest wspólnym certyfikatem X509v3, wówczas PEM jest kodowany jako:
-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
with line endings and padding with equals signs ...
-----END CERTIFICATE-----
Należy pamiętać, że plik PEM może również zawierać pełny łańcuch certyfikatów, w którym łańcuch zaczyna się od certyfikatu liścia / końca usługi, po którym następuje certyfikat, który go podpisał, zwykle do zaufanego certyfikatu głównego, ale bez niego. Jeśli więc brakuje Ci certyfikatów, możesz zajrzeć do pierwszego z nich.
.cer
Lub .crt
rozszerzenie.cer
po prostu oznacza certyfikat. Zwykle są to dane zakodowane w formacie DER, ale system Windows może również akceptować dane zakodowane w formacie PEM. Musisz spojrzeć na zawartość (np. Używając file
narzędzia w systemach POSIX), aby zobaczyć, co jest w pliku, aby mieć 100% pewności.
Spójrz na tę odpowiedź, aby uzyskać bardziej obszerną listę elementów obsługiwanych przez OpenSSL.
Aby użyć klucza publicznego zawartego w certyfikacie (i podpisanego podpisem w certyfikacie) należy użyć dowolnej biblioteki, która analizuje certyfikaty X.509 i wykonuje szyfrowanie RSA. Możesz użyć narzędzia, które wykrywa / obsługuje kodowanie PEM lub możesz najpierw przekonwertować certyfikat na DER, usuwając kodowanie PEM.
Linia poleceń OpenSSL zawiera wiele opcji do konwersji między PEM i DER, drukowania informacji o certyfikacie wysokiego poziomu lub parsowania ASN.1, aby uzyskać niskopoziomowy widok tego, co tam jest.
Podobnie jak większość struktur ASN.1, certyfikat z kodowaniem DER zawsze zaczyna się bajtem, 30
który jest kodowaniem znacznika ASN.1 SEQUENCE
. Jeśli widzisz dużo powtórzeń w pliku, to jest OK; to tylko struktura jest ściśle określona.
Podobnie, podstawa 64 w pliku zakodowanym w formacie PEM zawsze zaczyna się od litery, M
ponieważ ASN.1 SEQUENCE
zaczyna się od bajtu 30
, więc pierwsze 6 bitów jest 001100
, co przekłada się na liczbę 12, która jest indeksem litery M
, trzynasta litera alfabetu.