CRTをPEMに変換
バイナリ形式のCRTセキュリティ証明書をBase64エンコードのPEMテキスト形式に変換し、Apache、Nginx、および最新のLinuxウェブサーバーと互換性を持たせます。
フォーマットの比較と技術仕様
| 仕様 | CRT | PEM |
|---|---|---|
| MIMEタイプ | application/ | application/ |
| タイプ | X.509公開証明書 | Base64 ASCII証明書コンテナ |
| 圧縮 | なし | なし(Base64アーマー化) |
| 標準仕様 | ITU-T X.509 / RFC 5280 | IETF RFC 7468 |
| マジックバイトヘッダー | 30 82 (DER SEQUENCE) or -----BEGIN CERTIFICATE----- (PEM text) | 2D 2D 2D 2D 2D 42 45 47 49 4E (-----BEGIN CERTIFICATE / RSA PRIVATE KEY) |
フォーマットの概要と用途
セキュリティ証明書は、ウェブブラウザとサーバー間で送信されるデータを保護します。CRTファイルには、DERと呼ばれるバイナリ形式を使用する場合もあれば、プレーンテキストファイルの場合もあります。多くのLinuxウェブサーバー、ロードバランサー、およびメールクライアントでは、セキュリティ証明書にPEM形式の使用が求められます。PEMファイルは標準的なテキスト文字を使用し、特定の境界タグ内にセキュリティデータを格納します。 システム管理者は、Windows環境からLinuxシステムへセキュリティ証明書を移行する際に、この形式の要件に頻繁に直面します。ApacheおよびNginxウェブサーバーは、公開鍵と秘密鍵がPEMテキストファイルに存在することを想定しています。CRT証明書を変換することにより、SSLハンドシェイク中にサーバーソフトウェアが暗号データを正しく読み取れるようになります。
技術仕様とコーデックの詳細
CRTファイルはMIMEタイプapplication/x-x509-ca-certを使用します。DER形式で保存されている場合は生バイナリデータを含み、特定の認証局からエクスポートされた場合はテキストを含みます。PEM形式はMIMEタイプapplication/x-pem-fileを使用します。PEMはPrivacy Enhanced Mailの略であり、暗号鍵を保存するためのコンテナ形式として機能します。どちらの形式も圧縮を使用しないため、変換によってファイル品質が低下することはありません。バイナリCRTファイルには読み取り可能なテキストが含まれていませんが、PEMファイルには -----BEGIN CERTIFICATE----- などの読み取り可能なヘッダーがあり、その後にBase64 ASCII文字と終了タグ -----END CERTIFICATE----- が続きます。変換では、基盤となる公開鍵の数学的構造を変更せずに、生バイトを読み取り可能なASCIIテキストに変換します。
OSとブラウザの互換性
証明書ファイルの拡張子から、内容がDER形式かPEM形式かは判断できません。対応状況はアプリと必要な形式によって異なります。OpenSSLや多くのサーバーツールはPEM入力を受け付けますが、Windowsの証明書ツールは通常、対応する形式やコンテナのX.509証明書を扱います。
役立つ情報
本番ウェブサーバーを再起動する前に、OpenSSLコマンドを使用して、新しく変換されたPEM証明書に秘密鍵が一致していることを常に確認してください。
よくある質問
品質を落とさずにCRT証明書をPEM証明書に変換するにはどうすればよいですか?
CRTとPEMはファイル名の拡張子であり、固定されたエンコード形式ではありません。対応する証明書を入力した場合、変換ではシリアライズ形式やラッピングが変わります。デプロイ前に、出力に同じ証明書が含まれていることを確認してください。
CRT証明書とPEM証明書の違いは何ですか?
CRTは、DERまたはPEMでエンコードされている場合がある証明書の拡張子です。PEMは境界ラベル付きのBase64テキスト形式です。拡張子だけで判断せず、ファイルの内容から実際のエンコード形式を確認してください。