SSL証明書の拡張子、多すぎない…!?
SSL証明書を初めて扱うとき、なんだか沢山のファイルの種別があるようで圧倒されてしまいます。 だけど実は、拡張子が違っても中身は同じような書式で書かれていることが多いんです。 超ざっくばらんに、SSL証明書の拡張子についてまとめます。
拡張子は違っても、中身の形式は一緒なことが多い。
X.509 という規格
SSL証明書は、 X.509 という規格に沿って書かれた情報を、所定の方式でエンコードしたもの 、とまずは乱暴に理解しましょう。
上記で書いた『所定の方式』というのが大きく分けて2種類あります。以下で説明します。
"所定の方式でエンコード" その1 『PEM』
X.509 を PEM という方式でエンコードしたもの、それらが拡張子としては .pem
, .crt
, .cer
として表されることが多いです。
PEM 方式でエンコードされたものは、 -----BEGIN CERTIFICATE-----
の行で始まり、BASE64文字列の行が続き、 -----END CERTIFICATE-----
の行で終わる テキストファイル になっています。
↓ こんなの ↓
-----BEGIN CERTIFICATE-----
MIIH/TCCBeWgAwIBAgIQaBYE3/M08XHYCnNVmcFBcjANBgkqhkiG9w0BAQsFADBy
MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x
...
uYZJuqb2pKku+zzT6gUwHUTZvBiNOtXL4Nxwc/KT7WzOSd2wP10QI8DKg4vfiNDs
HWmB1c4Kji6gOgA5uSUzaGmq/v4VncK5Ur+n9LbfnfLc28J5ft/GotinMyDk3iar
F10YlqcOmeX1uFmKbdi/XorGlkCoMF3TDx8rmp9DBiB/
-----END CERTIFICATE-----
"所定の方式でエンコード" その2 『DER』
X.509 を DER という方式でエンコードしたもの、それらが拡張子としては .der
, .cer
として表されることが多いです。
DER 方式でエンコードされたものは、 バイナリファイル になっています。そのため、テキストエディタで開いても読めません。
まとめ
- X.509という規格に沿って書かれた情報を…
- テキスト形式の PEM でエンコードするよ →
.pem
,.crt
,.cer
- バイナリ形式の DER でエンコードするよ →
.der
,.cer
- テキスト形式の PEM でエンコードするよ →
PERもDERも、エンコード元となっているのはX.509であるため、 PER ⇔ DER で相互に変換することも可能です。(oepnssl コマンドを使って簡単に変換できますが、ここでは割愛します)