P12をPEMに変換
PKCS #12バンドルをPEM証明書に変換し、保護されたバイナリアーカイブから公開鍵と秘密鍵を抽出して、ウェブサーバー用のプレーンテキストファイルを作成します。
フォーマットの比較と技術仕様
| 仕様 | P12 | PEM |
|---|---|---|
| MIMEタイプ | application/ | application/ |
| タイプ | PKCS #12暗号化アーカイブ | Base64 ASCII証明書コンテナ |
| 圧縮 | パスワード暗号化 PKCS #7 セーフバッグ | なし(Base64アーマー化) |
| 標準仕様 | IETF RFC 7292 | IETF RFC 7468 |
| マジックバイトヘッダー | 30 82 (ASN.1 PKCS #12 PFX sequence) | 2D 2D 2D 2D 2D 42 45 47 49 4E (-----BEGIN CERTIFICATE / RSA PRIVATE KEY) |
フォーマットの概要と用途
セキュリティ管理者は、Apache、Nginx、またはHAProxyウェブサーバーにSSL証明書をデプロイする際、P12ファイルをPEM形式に頻繁に変換します。ブラウザやオペレーティングシステムはP12コンテナを使用して、ユーザーIDや秘密鍵を個人証明書ストアに簡単にインストールしますが、Linuxベースのウェブサーバーでは通常、公開証明書、中間チェーン、および秘密鍵用に個別のプレーンテキストファイルが必要です。この変換により、サービスが起動するたびに復号化パスワードの入力を求められることなく、サーバーソフトウェアがセキュリティクレデンシャルを直接読み取ることができます。 もう一つの一般的なワークフローには、API統合やコンテナ化されたマイクロサービスが含まれます。自動デプロイパイプラインは、環境変数や設定マウントを通じて注入されるプレーンテキストファイルに依存することがよくあります。バイナリP12バンドルを個別のPEMファイルに変換することで、標準化されたBase64アーマードテキストブロックを解析する最新のクラウドオーケストレーションツールとの互換性が保証されます。
技術仕様とコーデックの詳細
PKCS #12(P12/PFX)は証明書、秘密鍵、関連データを格納できるコンテナです。ツールや設定によって、パスワードで暗号化される場合も、暗号化されない場合もあります。秘密鍵をPEMに書き出すとコンテナの保護がなくなることがあるため、出力を保護し、暗号化された経路で転送してください。
OSとブラウザの互換性
PEM証明書は、Ubuntu、Red Hat、CentOS、Alpine Dockerコンテナを含むほとんどの主要なUnixおよびLinuxサーバー環境で幅広く利用できます。これらはOpenSSL、Apache HTTP Server、Nginx、およびPostfixによってネイティブで読み取られます。一方、P12バンドルは、Windows証明書マネージャー、macOSキーチェーン、iOS、Androidなどのクライアントサイドシステムで、個人認証クレデンシャルをインポートするために広くサポートされています。Chrome、Firefox、Safariなどのウェブブラウザはクライアント証明書認証のためにP12ファイルを受け入れますが、ウェブサーバーにはPEMの同等品が必要です。
役立つ情報
書き出した秘密鍵は秘密情報として扱ってください。アクセス権を制限して保管し、認証された安全な経路で転送します。P12のパスワードや暗号方式だけでは、安全でない転送を安全にはできません。
よくある質問
品質を落とさずにPKCS #12バンドルをPEM証明書に変換するにはどうすればよいですか?
証明書データは値を変えずに再エンコードできますが、変換によって秘密鍵が取り出され、P12の暗号化が解除される場合があります。出力した鍵ファイルを保護し、十分に安全な経路でのみ転送してください。
PKCS #12バンドルとPEM証明書の違いは何ですか?
PKCS #12 パッケージは、証明書、秘密鍵、関連データを含められるバイナリコンテナです。作成方法に応じて、パスワードで保護される場合も、暗号化されない場合もあります。