openssl x509コマンド: 公開鍵証明書の閲覧


前提


ドキュメント


公開鍵の成りすまし防止

暗号通信において、公開鍵が本物か(本当に通信相手のものか)どうかが問題となる。


認証局が公開鍵証明書を発行

証明の仕組み

  1. 証明書署名要求:
    • ドメイン所有者が、公開鍵等を含む文書を作成し、認証局に渡す
  2. 電子署名:
    • 認証局が、文書のハッシュ値を認証局のプライベート鍵で暗号化し、文書に付け足す
    • => 公開鍵証明書
  3. 検証:
    • 利用者が、認証局の公開鍵で復号したハッシュ値を確認

認証局自体の成りすまし防止

認証局の公開鍵は自らで証明する(自己署名、ルート証明書)。


X.509とDER、PEM

ファイル形式

拡張子は.pem, .der, .crt, .cer, .keyなど。

DERもPEMも、そのものは暗号文ではない(誰でもデコードできる)。


PEMのBEGIN行、END行

-----BEGIN ラベル-----
ここにBase64によるデータ
-----END ラベル-----

ラベル

鍵がPEMの場合、


証明書のダウンロード

site=ja.wikipedia.org
# PEMがデフォルト
openssl s_client -connect $site:443 < /dev/null | openssl x509 > $site.pem

証明書の表示

openssl x509 -text -noout -in $site.pem

DERとPEMの変換

# DERからPEMにする場合
openssl x509 -inform DER -in cert.der -outform PEM -out cert.pem

証明書の主な項目


X.509バージョン3の拡張情報


Subjectの内容

ドメイン認証(DV)の場合、CN以外は任意で認証(実在性確認)されたものではない。


サブドメインも証明: Subject Alternative Name(SAN)

これにより1枚でサブドメイン含めた証明書になる。