PEMをCRTに変換
PEMテキスト証明書をCRTバイナリ証明書に変換すると、ApacheサーバーやWindowsシステムでWebセキュリティ認証情報を正しく読み取れるようになります。
フォーマットの比較と技術仕様
| 仕様 | PEM | CRT |
|---|---|---|
| MIMEタイプ | application/ | application/ |
| タイプ | Base64 ASCII証明書コンテナ | X.509公開証明書 |
| 圧縮 | なし(Base64アーマー化) | なし |
| 標準仕様 | IETF RFC 7468 | ITU-T X.509 / RFC 5280 |
| マジックバイトヘッダー | 2D 2D 2D 2D 2D 42 45 47 49 4E (-----BEGIN CERTIFICATE / RSA PRIVATE KEY) | 30 82 (DER SEQUENCE) or -----BEGIN CERTIFICATE----- (PEM text) |
フォーマットの概要と用途
セキュリティ証明書は、ユーザーとサーバー間のトラフィックを暗号化してウェブサイトを保護します。PEM形式はBase64 ASCIIテキストを使用しているため、基本的なテキストエディタで簡単に開いたり、メールメッセージにコピーアンドペーストしたりできます。しかし、多くのサーバー環境、ハードウェアファイアウォール、および特定のオペレーティングシステムではテキスト形式が拒否されます。代わりにCRT形式が必要となります。 管理者は、ApacheウェブサーバーからWindowsのインターネットインフォメーションサービス環境やネットワークアプライアンスにセキュリティ証明書を移行する際、この不一致によく直面します。Windowsマシンやハードウェアロードバランサーは、ファイルがバイナリ構造を使用することを想定しています。ファイル形式を変更することで、これらのシステムはセキュリティキーを適切に読み取り、訪問者にエラーをスローすることなく安全なHTTPS接続を確立できるようになります。
技術仕様とコーデックの詳細
PEM形式はMIMEタイプapplication/x-pem-fileを使用し、特定のヘッダー行とフッター行の間にラップされたBase64 ASCIIエンコーディングに依存しています。これらの境界線は -----BEGIN CERTIFICATE----- および -----END CERTIFICATE----- と記述されます。CRT形式はMIMEタイプapplication/x-x509-ca-certを使用し、まったく同じ暗号公開鍵データをDistinguished Encoding Rulesとして知られるバイナリ構造で保存します。どちらの形式も圧縮を使用しないため、両方のファイルには圧縮オーバーヘッドが一切ありません。変換プロセスは完全にロスレスです。これは、基盤となる暗号公開鍵データの1ビットも変更することなく、テキストエンコードされたBase64バイトを生のバイナリバイトに単に翻訳しているためです。
OSとブラウザの互換性
証明書の拡張子から、内容がDER形式かPEM形式かは判断できません。Linuxのサーバーソフトウェアは一般にPEMを受け付けますが、Windowsの証明書ツールや機器ではDERなど別のコンテナが必要な場合があります。製品が指定する入力形式を確認してください。ブラウザーは信頼ストアを使うため、サーバー証明書ファイルをページの内容として開くわけではありません。
役立つ情報
証明書を本番ウェブサーバーに適用する前に、OpenSSLコマンドを使用してモジュラス値を確認し、秘密鍵が新しく変換されたCRTファイルに一致していることを常に検証してください。
よくある質問
品質を落とさずにPEM証明書をCRT証明書に変換するにはどうすればよいですか?
変換は完全にロスレスです。両方のファイル形式には、まったく同じX.509暗号公開鍵データが保存されます。ファイルの変換により、基盤となるセキュリティキーを変更することなく、コンテナのエンコーディングがBase64 ASCIIテキストからバイナリバイトに変更されるだけです。
PEM証明書とCRT証明書の違いは何ですか?
PEMファイルは、Base64エンコーディングと人間が読めるヘッダー行を使用するテキストベースのコンテナです。CRTファイルは、特定のオペレーティングシステムやサーバーハードウェアで必要とされる生バイト形式でまったく同じ証明書データを保持するバイナリコンテナです。