SSL証明書の更新を行うことになった。
今回は証明書のハッシュアルゴリズムをSHA-1からSHA-2に変更する必要があるとのこと。
変更理由はここがわかりやすい。
各社対応時期に多少の違いはあれど、2015年中の対応が必要で、ざっくり言うとこんな手順
- 乱数を生成
- 乱数から秘密鍵生成
- 秘密鍵を使用してCSRファイル生成
- 認証局へSSLサーバ証明書を発行依頼
- 発行された証明書の取り込み
乱数を生成
#openssl sha256 /var/log/messages > randam.dat
- 乱数として使用するだけなのでmd5でも問題ない
- 「/var/log/messages」としているが「/dev/random」などでも問題ない
秘密鍵の生成
#openssl genrsa -aes256 -rand randam.dat 2048 > private.key
- 作成したrandam.datを元にパスフレーズ付きの秘密鍵を生成する
- デフォルトで生成される鍵の長さ1024Bitだが、長さ指定で2048Bitの指定である場合が多い
- 「-rand」オプションを使用しないことも可能だがその場合、乱数取得元が未確認。「/dev/random」等か?
- 秘密鍵が平文のままだとマズイのでAESでパスフレーズ付きに暗号化する
生成された秘密鍵を使用してCSRを生成する。
#openssl req -new -key private.key -sha256 -out server.csr
- 「-sha256」が今回の本命で、いくつかあるSHA-2のうちSHA-256を選択している。
他との主な違いはハッシュ値長の違い。 - CSR:サーバ証明書を発行要求する署名(Certificate Signing Request)
- 以下このマンドで生成したCSRファイルの内容を確認することが出来る。
#openssl req -in server.csr -text
認証局へSSLサーバ証明書を発行依頼
- 販社のサイトなどで発行作業
発行された証明書の取り込み
- また別途。