SSLサーバ証明書まとめ簡易版
ファイル拡張子
- .DER/.PEMはエンコーディングを表している
- .DER : ASN.1で表されたものをバイナリにシリアライズ
- .PEM : ASN.1で表されたものをバイナリにシリアライズしてBase64でテキスト化(-- BEGINで始まるファイル)
- .CRT/.CER : 証明書≒「認証局の署名」付き公開鍵
- .KEY : 鍵(公開鍵 or 秘密鍵)
- .CSR : 証明書署名要求≒「認証局のクライアント(サーバ)の署名」付き公開鍵
- .p12 : 複数の鍵・証明書を1つのファイルにまとめて保存するためのフォーマット(PKCS #12)
- 「署名」は、文書(証明書、証明書署名要求)のダイジェスト(ハッシュ値)にパディングを付加したものを秘密鍵で暗号化したもの
opensslコマンド
- 秘密鍵の生成
openssl genrsa -out 秘密鍵 1024
- 公開鍵の生成
openssl rsa -in 秘密鍵 -pubout -out 公開鍵
秘密鍵の生成の際に、共通鍵暗号方式(DES or AES)で秘密鍵を暗号化
openssl genrsa -aes256 -out 秘密鍵 1024
証明書署名要求の作成
openssl req -new -key 「鍵所有者の」秘密鍵 -out 証明書署名要求
ルート認証局による証明書の作成
openssl x509 -req -in 証明書署名要求 -signkey 「認証局の」秘密鍵 -days 期限 -out 証明書
秘密鍵と公開鍵をPKCSファイル(.p12)にまとめて保存
openssl pkcs12 -export -in 公開鍵 -inkey 秘密鍵 -out PKCSファイル
証明書から公開鍵を取り出す
openssl x509 -in 証明書 -pubkey -noout -out 公開鍵
- -nooutで証明書自身の出力を抑制し、取り出した公開鍵だけを出力
- クライアントからのサーバの証明書の検証
openssl s_client -connect サーバ:443 -CAfile 認証局の証明書
ルート認証局と中間認証局
- ルート認証局の証明書は、通常ブラウザにプリインストールされているため、ダウンロードしたものと同一かどうかで検証が可能
- 中間認証局の証明書は、ルート認証局により署名されているため、ルート認証局の証明書(公開鍵)で検証される
- このように、証明書の連鎖(チェイン)で、ルート認証局証明書 -> 中間認証局証明書 -> サーバ証明書と3階層になっていることが多い
- 4階層(クロスルート方式)の場合もあるし、物理的には何階層でも可能
c.f.
- 作者: 結城浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/08/26
- メディア: 大型本
- この商品を含むブログ (14件) を見る