PEM ファイル形式とは?
PEM ファイル拡張子は、暗号化キー、証明書、およびその他の種類のデータを保存および転送するために証明書ファイルで使用されます。PEM ファイルは Base64 でエンコードされ、ASCII テキスト形式でデータを保存します。すべてのブロックは、-----BEGIN CERTIFICATE----- や -----END CERTIFICATE----- のような認識可能なヘッダーおよびフッター行でラップされています。
PEM エンコードされた証明書ファイルは、標準のテキストエディタを使用して簡単に表示できるため、インターネットサーバーで頻繁に使用されます。PEM ファイルは信頼できるウェブサイトの認証に使用され、Apache や Nginx などの Unix ベースのウェブサーバーにおけるデフォルトの形式です。単一の .pem ファイルに、サーバー証明書、中間証明書、秘密鍵など、複数のブロックを1つのファイルにまとめることができます。PEM は SSH キーペア や TLS/HTTPS 設定にも広く使用されています。
PEM 証明書は、セキュリティ目的でデジタル署名された公開鍵を使用します。認証プロセスでは、公開鍵を使用して鍵の所有者を特定し、本人が主張する通りの人物であることを確認します。.pem ファイルに保存された秘密鍵は、セキュリティを強化するためにパスフレーズで保護することも可能です。
もともと1990年代初頭に Privacy-Enhanced Mail 用に設計された PEM エンコーディングは、2015年に RFC 7468 として IETF 標準として正式化されました。現在でも X.509 証明書や暗号化キーのコンテナ形式として最も広く使用されています。関連するバイナリ形式には .DER や PKCS#12 ファイルがあります。.crt や .key ファイルは、単に証明書や鍵を含む .pem ファイルの名前を変更したものであることがよくあります。
- PEM ファイルは OpenSSL およびほとんどの TLS/SSL ツールキットでサポートされています。
- テキストエディタで
.pemファイルを開くと、マークされた-----BEGIN-----および-----END-----のヘッダーとフッターセクションが明確に表示されます。 - 単一の
.pemファイルには、CERTIFICATE、PRIVATE KEY、RSA PRIVATE KEY、PUBLIC KEY、CERTIFICATE REQUESTなど、さまざまなオブジェクトタイプを保持できます。
セキュリティと安全性
リスク: HIGH.pem の危険性は秘密鍵(PRIVATE KEY)の場合にあります。'-----BEGIN PRIVATE KEY-----'(または RSA/EC PRIVATE KEY)を含む .pem は機密情報です。これを持っている人は誰でも、あなたのサーバーになりすましたり、通信を復号したり、クラウドインスタンスにログインしたりできます。秘密鍵の .pem をオンラインの «PEM ビューア/コンバーター» に貼り付けたり、メールで送信したりしないでください。変換は OpenSSL を使用してローカルで行ってください。厳格な権限を設定してください(SSH は誰でも読み取り可能なキーを拒否します - 'chmod 600 key.pem')。証明書(公開)のみの .pem は共有しても安全です。鍵が関わるものについては、オンラインの証明書コンバーターに注意してください。ファイル自体は不活性なテキストであり、実行されることはありません。
形式の詳細
概要PEM ファイルを開くプログラム
技術的詳細
詳細仕様| エンコーディング | ASCII ヘッダーおよびフッター行でラップされた Base64 エンコード DER データ |
| ファイル構造 | `-----BEGIN <type>-----` および `-----END <type>-----` 行で区切られた1つ以上の PEM ブロック |
| 基盤となるバイナリ形式 | DER (Distinguished Encoding Rules)、バイナリ ASN.1 シリアル化形式 |
| MIME タイプ | `application/x-pem-file` |
| サポートされるオブジェクトタイプ | `CERTIFICATE`, `PRIVATE KEY`, `RSA PRIVATE KEY`, `PUBLIC KEY`, `CERTIFICATE REQUEST` |
| 行の長さの慣習 | RFC 7468 に基づき、1行あたり64文字でラップされた Base64 データ |
| 複数オブジェクトのサポート | 単一の `.pem` ファイルに、完全な証明書チェーンと秘密鍵など、複数の PEM ブロックを連結可能 |
| 一般的な代替拡張子 | `.crt`, `.cer`, `.key`, `.ca-bundle` - PEM 形式は同じですが、役割によって命名規則が異なります |
| 秘密鍵の保護 | 鍵ブロックは、PKCS#8 またはレガシーな PEM 暗号化ヘッダーを使用してパスフレーズで暗号化可能 |
| 主なユースケース | TLS/HTTPS サーバー証明書、SSH キーペア、CA 証明書バンドル、コード署名証明書 |
| 相互運用性 | `openssl x509 -outform DER` でバイナリの `.der` に変換可能。PKCS#12 (`.p12`) ファイルは PEM にエクスポート可能 |
| 文字セット | US-ASCII のみ - Base64 アルファベット (A-Z, a-z, 0-9, +, /) とヘッダー/フッターのダッシュおよびタイプラベル |
| 改行の扱い | RFC 7468 は LF (\n) 改行を規定していますが、多くのツールはレガシー互換性のために CRLF も受け入れます |
| ヘッダー/フッターの構文 | 5つのダッシュ、`BEGIN` または `END`、スペース、オブジェクトタイプラベル、5つのダッシュ - 例: `-----BEGIN CERTIFICATE-----` |
| リリース日 | PEM email RFCs 1421-1424 (1993); the encoding lives on as the textual format, codified in RFC 7468 (2015) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.rfc-editor.org |
PEM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。PEM ファイルについて最初の質問をしてみましょう。