PEM証明書 (.pem)
IETF 標準Privacy-Enhanced Mail (PEM) は、暗号化アセットのための汎用的で人間が読めるテキスト規格であり、バイナリDER証明書と秘密鍵を「-----BEGIN...-----」という特徴的なバナーで囲まれたBase64テキストとしてエンコードします。
CRT を PEM に変換
無料のブラウザ内 CRT から PEM へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで PEM ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで PEM ファイルを識別します:
16進数シグネチャ (オフセット 0):
2D 2D 2D 2D 2D 42 45 47 49 4EASCII表現: -----BEGIN
標準化: IETF RFC 7468 / RFC 1421
技術仕様
| コンテナアーキテクチャ | Base64 ASCII armored container bounded by '-----BEGIN [LABEL]-----' and '-----END [LABEL]-----' encapsulating DER binary structures |
| 圧縮 | Uncompressed text format |
| バイトエンディアン | ASCII / UTF-8 text stream |
| 色空間 | N/A (Cryptographic Container) |
| チャンネルと構造 | Certificates, Private Keys (RSA/EC/DSA), CSRs, Public Keys, and Certificate Revocation Lists |
| 最大寸法 | Unbounded text stream (supports multiple chained certificates) |
| 透過性 | Cleartext ASCII armored envelope |
| ストリーミングとプログレッシブ | Sequential banner-by-banner streaming extraction |
技術比較マトリックス: PEM 対 競合製品
| 技術属性 | PEM (現在) | DER | P12 | CRT |
|---|---|---|---|---|
| テキスト vs バイナリ | 人間が読める Base64 テキスト | 生のバイナリバイトのみ | 暗号化されたバイナリアーカイブ | 通常は Base64 テキスト |
| クラウドおよびDevOpsでの利用 | 100% 普遍的な標準 (AWS, K8s) | ハードウェアトークン / Java | Windows IIS サーバーのインポート | Web サーバー設定 |
| 許可される内容 | 証明書、秘密鍵、チェーン、CSR | 単一の証明書または鍵 | バンドルされた証明書 + 暗号化された鍵 | 通常は公開証明書のみ |
| コピー&ペースト可能 | はい(テキストエリアに直接貼り付け可能) | いいえ(バイナリ) | いいえ(バイナリ) | はい(PEMエンコードされている場合) |
一般的な破損モードと16進数リカバリガイド
OpenSSLエラー: 'PEM_read_bio: no start line'。
根本原因: 「-----BEGIN ...-----」ヘッダーバナーの欠落または破損、あるいはWindowsのCRLF改行の破損。
復旧: File2File証明書ツールを使用して、標準の5ダッシュのヘッダーバナーを復元します。
セキュリティ分析とパーサー攻撃ベクトル
PEMファイルには、公開された場合に完全なサーバーアクセスを許可する暗号化されていない秘密鍵(「-----BEGIN RSA PRIVATE KEY-----」)が含まれていることがよくあります。
既知の攻撃ベクター
- 暗号化されていないPEM秘密鍵をパブリックバージョン管理リポジトリにコミットすること。
- ローカルファイルインクルージョン (LFI) を介したサーバーPEMキーの読み取りを伴うパストラバーサル攻撃。
- 暗号化された秘密鍵PEMファイルにおける脆弱なパスフレーズ。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- 人間が読めてコピー&ペースト可能:Webフォーム、クラウドコンソールの入力(AWS、GCP)、およびメールにコピーできます。
- OpenSSL、Linux、Docker、Kubernetesシークレット、クラウドインフラストラクチャ全体での普遍的な標準。
- マルチ証明書サポート:ブロックを積み重ねることで、単一のテキストファイルに完全な証明書信頼チェーンを保存できます。
技術的な制限とデメリット
- Base64エンコーディングのオーバーヘッドのため、生のバイナリDERよりも約33%大きい。
- 偶発的な破損:行ラップの変更やバナー内のダッシュの欠落により、パース障害が発生する可能性があります。
- 暗号化されていない秘密鍵のPEMファイルは、漏洩した場合に極端なセキュリティリスクをもたらします。
興味深い技術トリビア
- 普及しなかった暗号化電子メールシステム用に作成されましたが、そのASCIIアーマーは地球上で最も人気のあるセキュリティフォーマットになりました。
- すべての有効なPEMファイルは5つのダッシュ「-----BEGIN」で始まります。
- 完全なSSL証明書チェーンは、単一の .pem ファイル内で複数の「BEGIN CERTIFICATE」ブロックを次々と貼り付けるだけで作成できます。
よくある技術的な質問
.pem ファイルとは何ですか?
.pem ファイルは、セキュリティ証明書、秘密鍵、または証明書チェーン全体を、「-----BEGIN...-----」バナーが付いた読み取り可能な Base64 形式で保存するためのテキストベースのフォーマットです。
PEM を P12 または PFX に変換するにはどうすればよいですか?
Webブラウザ上で File2File.app を直接使用すれば、1クリックで PEM 証明書と秘密鍵をパスワードで保護された P12/PFX ファイルに変換できます。
PEM 証明書の有効期限を確認するにはどうすればよいですか?
外部サーバーにデータを送信することなく、.pem ファイルを File2File.app で開いて有効期限、発行者、ドメイン名をデコードできます。
関連するPEM変換ペア
バイナリ形式のCRTセキュリティ証明書をBase64エンコードのPEMテキスト形式に変換し、Apache、Nginx、および最新のLinuxウェブサーバーと互換性を持たせます。
PEMテキスト証明書をCRTバイナリ証明書に変換することで、ApacheサーバーやWindowsシステムがウェブセキュリティクレデンシャルを正しく読み取れるようになります。
PKCS #12バンドルをPEM証明書に変換し、保護されたバイナリアーカイブから公開鍵と秘密鍵を抽出して、ウェブサーバー用のプレーンテキストファイルを作成します。
PEM証明書をPKCS #12バンドルに変換することで、公開証明書と秘密鍵を1つのパスワード保護されたファイルにまとめ、WindowsサーバーやWebブラウザへ簡単にインストールできるようにします。
DERバイナリ証明書をPEM証明書に変換することで、エンコーディングを生のバイナリバイトからBase64 ASCIIテキストに変更し、Webサーバーやテキストエディタで簡単に読み取れるようにします。
バイナリのCERセキュリティ証明書をBase64エンコードされたPEMテキストファイルに変換することで、管理者がセキュリティ鍵を簡単に読み取り、Webサーバーやアプリケーションの設定に貼り付けられるようにします。