PEM証明書 (.pem)
IETF 標準Privacy-Enhanced Mail(PEM)は、証明書や秘密鍵などの暗号オブジェクトに広く使われるテキスト形式のエンコードです。Base64データをラベル付きの「-----BEGIN...-----」と「-----END...-----」の境界で囲みます。
CRT を PEM に変換
無料のブラウザ内 CRT から PEM へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してPEMファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してPEMファイルを識別します:
16進数シグネチャ(オフセット0):
2D 2D 2D 2D 2D 42 45 47 49 4EASCII表現: -----BEGIN
標準化: IETF RFC 7468 / RFC 1421
技術仕様
| コンテナアーキテクチャ | DERバイナリ構造を格納し、'-----BEGIN [LABEL]-----'と'-----END [LABEL]-----'で囲むBase64 ASCIIアーマー形式のコンテナ |
| 圧縮 | 非圧縮テキスト形式 |
| バイトエンディアン | ASCII / UTF-8テキストストリーム |
| 色空間 | 該当なし(暗号コンテナ) |
| チャンネルと構造 | 証明書、秘密鍵(RSA/EC/DSA)、CSR、公開鍵、証明書失効リスト |
| 最大寸法 | テキストストリーム長に上限なし(複数の証明書チェーンに対応) |
| 透過性 | 平文のASCIIアーマー形式エンベロープ |
| ストリーミングとプログレッシブ | バナー単位で順次ストリーミング抽出 |
技術比較表: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.app証明書ツールを使用して、標準の5ダッシュのヘッダーバナーを復元します。
セキュリティ分析とパーサー攻撃ベクトル
PEMファイルには、公開された場合に完全なサーバーアクセスを許可する暗号化されていない秘密鍵(「-----BEGIN RSA PRIVATE KEY-----」)が含まれていることがよくあります。
既知の攻撃ベクター
- 暗号化されていないPEM秘密鍵をパブリックバージョン管理リポジトリにコミットすること。
- ローカルファイルインクルージョン (LFI) を介したサーバーPEMキーの読み取りを伴うパストラバーサル攻撃。
- 暗号化された秘密鍵PEMファイルにおける脆弱なパスフレーズ。
防御的ベストプラクティス: 秘密鍵のPEMファイルを厳格なファイルシステム権限(chmod 600)で保護し、gitには絶対にコミットしません。
歴史的背景とマイルストーン
主なメリット
- 人間が読めてコピー&ペースト可能: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システムでWebセキュリティ認証情報を正しく読み取れるようになります。
PKCS #12バンドルをPEM証明書に変換し、保護されたバイナリアーカイブから公開鍵と秘密鍵を抽出して、ウェブサーバー用のプレーンテキストファイルを作成します。
PEM証明書をPKCS #12バンドルに変換すると、公開証明書と秘密鍵が1つのパスワードで保護されたファイルにまとまり、WindowsサーバーやWebブラウザーに簡単にインストールできます。
DERバイナリ証明書をPEM証明書に変換することで、エンコーディングを生のバイナリバイトからBase64 ASCIIテキストに変更し、Webサーバーやテキストエディタで簡単に読み取れるようにします。
バイナリのCERセキュリティ証明書をBase64エンコードされたPEMテキストファイルに変換することで、管理者がセキュリティ鍵を簡単に読み取り、Webサーバーやアプリケーションの設定に貼り付けられるようにします。