PEMは「Privacy-Enhanced Mail」の略称で、もともとは電子メールを安全に扱うための仕組み(規格群)として提案されました。現在はその文脈を超えて、証明書や鍵などの暗号データを「テキストとして扱える形」に整形した表現形式として、幅広い場面で使われています。
とくにWebサーバーのTLS設定やVPN、SSHなどで「証明書ファイル」「秘密鍵ファイル」を扱うときに、PEM形式が選ばれるケースが多いでしょう。
PEM形式は、バイナリデータ(例:X.509証明書や秘密鍵)をBase64でエンコードし、ヘッダーとフッターで囲んだテキストとして表現します。
代表例として、証明書(Certificate)は次のような形です。
-----BEGIN CERTIFICATE-----
(Base64で表現された証明書データ)
-----END CERTIFICATE-----
同様に、秘密鍵やCSR(証明書署名要求)でも「BEGIN/END」の種類が変わります(例:BEGIN PRIVATE KEY、BEGIN RSA PRIVATE KEY、BEGIN CERTIFICATE REQUESTなど)。
テキスト形式なので内容を開いて確認しやすい一方で、手作業で編集すること自体は推奨されません。改行や余計な空白、ヘッダー/フッターの崩れで読み込みエラーになりやすく、意図せず破損させてしまうことがあります。
PEM形式は「.pem」で提供されることもありますが、実務上は拡張子と中身が必ずしも1対1ではありません。たとえば証明書でも、.pem / .crt / .cer といった拡張子で配布されることがあります(中身がPEMの場合もDERの場合もあり得ます)。
PEMとして配布される証明書には、一般に「所有者(Subject)」「発行者(Issuer)」「有効期限」「公開鍵」など、通信相手を検証するための情報が含まれます。秘密鍵(Private Key)は別ファイルとして管理されることが多く、取り扱いは慎重に行う必要があります。
PEMは、現在ではインターネット全般のセキュリティ設定で利用されます。代表例は次の通りです。
デジタル証明書(一般にX.509証明書)は、オンライン通信において「相手が正しい相手であること」を確認するための電子的な証明書です。主な要素として、次の情報を含みます。
証明書そのものは「中身の構造(DERで表現されることが多い)」と、「それをどう運ぶか(PEMで包む/DERのまま配る)」が分かれており、PEMはその“運び方(表現形式)”として登場するイメージです。
【参考】デジタル証明書とは? 役割・種類・仕組みをわかりやすく解説
デジタル証明書は、主に次の3点に関わります。
証明書は単独で万能ではありませんが、信頼の連鎖(認証局)や暗号プロトコル(TLS)と組み合わさることで、実運用に耐えるセキュリティ基盤になります。
PEMは「暗号の仕組みそのもの」ではなく、暗号データ(証明書・鍵・CSRなど)を扱いやすくする表現形式です。現場でよく登場する用途を、整理しておきます。
PEMは、秘密鍵や公開鍵をテキストとして格納できます。たとえば BEGIN PRIVATE KEY(PKCS#8)や、古い形式では BEGIN RSA PRIVATE KEY(PKCS#1)などが見られます。
ただし、秘密鍵をPEMで保存している=安全という意味ではありません。テキストで扱えるぶん、流出時の影響も大きいため、アクセス制御・保管場所・バックアップ手順まで含めて運用設計が重要です。
CSRは、証明書を発行してもらうために認証局へ提出するデータです。公開鍵と申請情報(組織名、CNなど)を含み、秘密鍵で署名されます。CSRもPEM形式で扱われることが多く、ヘッダーは BEGIN CERTIFICATE REQUEST となります。
WebサーバーでTLSを設定する際、サーバー証明書・中間証明書(チェーン)・秘密鍵をPEMで指定する構成は非常に一般的です。ソフトウェアによっては「証明書チェーンを1ファイルに連結して指定する」運用もあり、このときPEMは扱いやすい形式になります。
PEMは「連結できる」点が便利ですが、混ぜ方には注意が必要です。たとえば、証明書チェーンは連結でOKでも、秘密鍵まで同一ファイルに入れる運用は、管理・権限設計の観点で避けられることもあります(要件と運用ポリシー次第です)。
PEMファイルとして扱う代表的なデータは次の通りです。
重要なのは、これらが「PEMという箱に入ったデータ」だという点です。中身が証明書なのか、鍵なのか、CSRなのかで、ヘッダー/フッターが変わります。
実運用では、証明書や鍵はOpenSSLや認証局の発行物として入手するのが一般的です。「テキストエディタで自作する」よりも、ツールで生成・変換し、ファイルとして保存するのが安全です。
どうしても「貼り付けで保存」する場面があるなら、最低限次を守ります。
-----BEGIN ...-----)PEMはテキストなのでエディタで開けます。ただし「中身の意味」を確認するなら、ツールでパースして確認するのが確実です。たとえば証明書であれば、Subject、Issuer、有効期限、SANなどを確認できる手段(OpenSSL、OSの証明書ビューア等)を使うと安心です。
よく見かけるエラー例として、次があります。
典型的な原因は次の通りです。
「どのデータを読み込もうとしているのか」「そのデータの種類は何か」を切り分けると、復旧が早くなります。
証明書や鍵を扱うフォーマットはPEMだけではありません。ここでは、現場でよく並べて語られるDERとPKCS系を整理します。
DERは、ASN.1構造をバイナリで厳密に表現する形式です。PEMのようなヘッダー/フッターはなく、ファイルとしてはバイナリになります。環境によっては .cer / .der などで配布されることがあります。
DERは「テキストで読めない」だけで、危険という意味ではありません。むしろ、仕様として厳密で、機械処理に向いています。人間が中身を確認したい場合は、ビューアやツールで表示します。
PKCSは公開鍵暗号関連の標準群で、実務では主に次が登場します。
たとえばWindows環境で証明書と秘密鍵を「一式として」移行する場合は、PKCS#12(.pfx)が選ばれることが多いでしょう。
| 形式 | 見た目 | 向いている場面 | 補足 |
|---|---|---|---|
| PEM | テキスト(BEGIN/END付き) | Webサーバー設定、VPN/SSH設定、連結運用 | 中身はBase64化された証明書/鍵など |
| DER | バイナリ | 機械処理、特定製品の受け渡し | テキストでは読めないが、ツールで確認可能 |
| PKCS#12 | バイナリ(パスワード保護可) | 証明書+秘密鍵を一式で移行したい | .p12/.pfxとして扱われることが多い |
形式選択は「何をどこで使うか」でほぼ決まります。
PEMは、もともとメールセキュリティの文脈で登場した言葉ですが、現在は証明書や鍵などを「テキストとして扱える表現」にする形式として広く使われています。PEM自体が暗号方式ではなく、証明書や鍵といった暗号データの“入れ物”である点を押さえると、DERやPKCS#12との違いも整理しやすくなります。
PEMは確認しやすい反面、改行崩れや貼り付けミスで壊れやすい側面もあります。運用では、ツールで生成・変換し、種類(CERTIFICATE / PRIVATE KEY / CSR)を取り違えないことが大切です。
厳密には、PEMは証明書そのものの構造ではなく、証明書や鍵などをBase64化してテキストとして表現する「表現形式(エンコーディング)」です。中身が証明書(X.509)であることも、秘密鍵であることもあります。
そのブロックに入っているデータの種類を示します。たとえば証明書は BEGIN CERTIFICATE、秘密鍵は BEGIN PRIVATE KEY、CSRは BEGIN CERTIFICATE REQUEST のように表示されます。
あります。.crt や .cer、.key などでも中身がPEMであることがあります。拡張子だけで判断せず、BEGIN/ENDの表記やツールで中身を確認するのが確実です。
推奨されません。改行や空白、文字コードの影響で破損しやすく、読み込みエラーの原因になります。編集が必要な場合は、OpenSSLなどのツールで再生成・変換するのが安全です。
技術的には可能ですが、運用上は分けることが多いです。アクセス権限やバックアップの扱いが難しくなり、秘密鍵の露出リスクも上がるためです(要件とポリシー次第です)。
ヘッダー/フッターの種類違い、Base64部分の破損(改行崩れ・余計な空白・文字化け)、そもそも証明書ではないデータを読み込んでいる、などが典型です。
ツールで両者の公開鍵情報(モジュラスやフィンガープリント等)を比較して一致するか確認します。目視では判断できないため、コマンドや機器の診断機能を使うのが確実です。
DERはバイナリで厳密に表現された形式、PEMはそれをBase64化してテキストで扱えるようにした形式です。同じ証明書でも、DER版・PEM版が存在します。
証明書と秘密鍵を「一式」で扱いたいときに使われることが多いです。パスワード保護も可能で、Windows環境の移行や配布でよく登場します。
PEM自体はBase64なので、そのままでは読み取れません。ツールでデコードして表示することで、Subject、Issuer、有効期限、SANなどを確認できます。運用ではこの確認手順を持っておくと安心です。