Co to jest format pliku PEM?
Rozszerzenie pliku PEM jest używane przez pliki certyfikatów do przechowywania i transportu kluczy kryptograficznych, certyfikatów oraz innych typów danych. Pliki PEM są zakodowane w Base64 i przechowują dane w formacie tekstowym ASCII - każdy blok jest otoczony rozpoznawalnymi liniami nagłówka i stopki, takimi jak -----BEGIN CERTIFICATE----- i -----END CERTIFICATE-----.
Pliki certyfikatów zakodowane w PEM są często używane na serwerach internetowych, ponieważ można je łatwo przeglądać za pomocą dowolnego standardowego edytora tekstu. Pliki PEM służą do uwierzytelniania zaufanych stron internetowych i są domyślnym formatem na serwerach WWW opartych na systemie Unix, takich jak Apache i Nginx. Pojedynczy plik .pem może zawierać wiele bloków - na przykład certyfikat serwera, certyfikaty pośrednie i klucz prywatny - wszystko w jednym pliku. PEM jest również szeroko stosowany w parach kluczy SSH oraz konfiguracji TLS/HTTPS.
Certyfikat PEM wykorzystuje podpisany cyfrowo klucz publiczny w celach bezpieczeństwa. Proces uwierzytelniania wykorzystuje klucz publiczny do zidentyfikowania właściciela klucza i potwierdzenia, że jest on tym, za kogo się podaje. Klucze prywatne przechowywane w plikach .pem mogą być opcjonalnie chronione hasłem dla dodatkowego bezpieczeństwa.
Pierwotnie zaprojektowane dla Privacy-Enhanced Mail na początku lat 90., kodowanie PEM zostało sformalizowane jako standard IETF w RFC 7468 (2015). Pozostaje ono najczęściej używanym formatem kontenera dla certyfikatów X.509 i kluczy kryptograficznych. Powiązane formaty binarne obejmują pliki .DER i PKCS#12; pliki .crt i .key to często po prostu pliki .pem o zmienionej nazwie, zawierające odpowiednio certyfikat lub klucz.
- Pliki PEM są obsługiwane przez OpenSSL i większość zestawów narzędzi TLS/SSL.
- Otwarcie pliku
.pemw edytorze tekstu wyraźnie pokazuje oznaczone sekcje nagłówka i stopki-----BEGIN-----oraz-----END-----. - Pojedynczy plik
.pemmoże zawierać różne typy obiektów:CERTIFICATE,PRIVATE KEY,RSA PRIVATE KEY,PUBLIC KEY,CERTIFICATE REQUESTi inne.
Bezpieczeństwo
RYZYKO: HIGHZagrożenie w przypadku .pem dotyczy klucza PRIVATE KEY. Plik .pem zawierający „-----BEGIN PRIVATE KEY-----” (lub RSA/EC PRIVATE KEY) jest tajemnicą: każdy, kto go posiada, może podszyć się pod Twój serwer, odszyfrować ruch lub zalogować się do Twojej instancji w chmurze. NIGDY nie wklejaj pliku .pem z kluczem prywatnym do internetowych „przeglądarek/konwerterów PEM” ani nie wysyłaj go e-mailem; konwersje wykonuj lokalnie za pomocą OpenSSL. Ustaw rygorystyczne uprawnienia (SSH odrzuca klucz, który jest odczytywalny dla wszystkich - „chmod 600 klucz.pem”). Plik .pem, który jest tylko certyfikatem (publicznym), można bezpiecznie udostępniać. Zachowaj ostrożność przy korzystaniu z internetowych konwerterów certyfikatów w przypadku wszystkiego, co zawiera klucz. Same pliki są pasywnym tekstem i nie mogą się uruchomić.
Szczegóły formatu
w pigułceProgramy otwierające pliki PEM
Szczegóły techniczne
specyfikacja| Kodowanie | Dane DER zakodowane w Base64, otoczone liniami nagłówka i stopki ASCII |
| Struktura pliku | Jeden lub więcej bloków PEM, każdy ograniczony liniami `-----BEGIN <typ>-----` i `-----END <typ>-----` |
| Podstawowy format binarny | DER (Distinguished Encoding Rules), binarny format serializacji ASN.1 |
| Typ MIME | `application/x-pem-file` |
| Obsługiwane typy obiektów | `CERTIFICATE`, `PRIVATE KEY`, `RSA PRIVATE KEY`, `PUBLIC KEY`, `CERTIFICATE REQUEST` |
| Konwencja długości linii | Dane Base64 zawijane po 64 znakach na linię zgodnie z RFC 7468 |
| Obsługa wielu obiektów | Pojedynczy plik `.pem` może łączyć wiele bloków PEM, takich jak pełny łańcuch certyfikatów wraz z kluczem prywatnym |
| Typowe alternatywne rozszerzenia | `.crt`, `.cer`, `.key`, `.ca-bundle` - ten sam format PEM, różne konwencje nazewnictwa zależnie od roli |
| Ochrona klucza prywatnego | Bloki kluczy mogą być szyfrowane hasłem przy użyciu PKCS#8 lub starszych nagłówków szyfrowania PEM |
| Główne zastosowania | Certyfikaty serwerów TLS/HTTPS, pary kluczy SSH, pakiety certyfikatów CA, certyfikaty do podpisywania kodu |
| Interoperacyjność | Możliwość konwersji na binarny `.der` za pomocą `openssl x509 -outform DER`; pliki PKCS#12 (`.p12`) mogą być eksportowane do PEM |
| Zestaw znaków | Tylko US-ASCII - alfabet Base64 (A-Z, a-z, 0-9, +, /) oraz myślniki nagłówka/stopki i etykiety typów |
| Obsługa znaków nowej linii | RFC 7468 wymaga zakończeń linii LF (\n); wiele narzędzi akceptuje również CRLF dla wstecznej kompatybilności |
| Składnia nagłówka/stopki | Pięć myślników, `BEGIN` lub `END`, spacja, etykieta typu obiektu, pięć myślników - np. `-----BEGIN CERTIFICATE-----` |
| Wydano | PEM email RFCs 1421-1424 (1993); the encoding lives on as the textual format, codified in RFC 7468 (2015) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.rfc-editor.org |
Konwersje PEM
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki PEM.