Отговарям за поддръжката на два сървъра на Дебиан. Всеки път, когато трябва да направя нещо със сертификати за сигурност, търся уроци в Google и се мъча да го направя, докато най-накрая се получи.
В търсенето си обаче често попадам на различни файлови формати (.key
, .csr
, .pem
), но никога не съм успявал да намеря добро обяснение за предназначението на всеки файлов формат.
Чудех се дали добрите хора тук, в ServerFault, биха могли да дадат някакво разяснение по този въпрос?
SSL съществува от достатъчно дълго време и бихте си помислили, че ще има договорени формати на контейнери. И сте прави, има. Има твърде много стандарти, както се случва. Така че това е, което знам, и съм сигурен, че и други ще се включат.
/etc/ssl/certs
) или може да включва цялата верига от сертификати, включително публичния ключ, частния ключ и кореновите сертификати. Объркващо е, че той може да кодира и CSR (например както се използва тук), тъй като форматът PKCS10 може да бъде преведен в PEM. Името е от Privacy Enhanced Mail (PEM), неуспешен метод за защитена електронна поща, но използваният от него контейнерен формат продължава да съществува и представлява превод на base64 на ключовете x509 ASN.1./etc/ssl/private
. Правата на тези файлове са много важни и някои програми ще откажат да заредят тези сертификати, ако те са зададени неправилно.openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes
Няколко други формата, които се появяват от време на време:
openssl x509 -inform der -in to-convert.der -out converted.pem
). Windows ги възприема като файлове със сертификати. По подразбиране Windows ще експортира сертификатите като .DER форматирани файлове с различно разширение. Например....keystore
вместо него. За разлика от сертификатите в стил .pem, този формат има определен начин за включване на сертификати по сертификационна пътека.В обобщение, има четири различни начина за представяне на сертификатите и техните компоненти:
Надявам се това да помогне.
PEM сам по себе си не е сертификат, а просто начин за кодиране на данни. Сертификатите X.509 са един от видовете данни, които обикновено се кодират чрез PEM.
PEM представлява сертификат X.509 (чиято структура се определя с помощта на ASN.1), кодиран с помощта на ASN.1 DER (правила за различно кодиране), след което преминава през кодиране Base64 и се вмъква между редове за закрепване на обикновен текст (BEGIN CERTIFICATE и END CERTIFICATE).
Можете да представите същите данни, като използвате представянето PKCS#7 или PKCS#12, като за целта може да се използва помощната програма за командния ред openssl.
Очевидните предимства на PEM са, че е безопасен за вмъкване в тялото на имейл съобщение, тъй като има опорни редове и е 7-битов.
В RFC1422 има повече подробности за стандарта PEM, свързани с ключовете и сертификатите.