はじめに
SSL証明書の有効期限が近づいてきましたので、いつも通り更新作業をしようと思います。
ただ、これもいつものことなのですが、たまにしかやらない作業のため、前回どのように手順を踏んだのかいまいち思い出せない。。
ということで、時間もなかったので調べながらササっとと終わらせました。
今回は私がネットオウルを使用しているため、ネットオウルを例に設定していきたいと思います。
作業の流れ
基本的な作業の流れは、以下になります。
- 秘密鍵を作成。
- CSR(証明書署名要求)を作成。
- ネットオウルの管理画面にて更新(or 新規)手続きを行う。
- 作成したCSRをネットオウル管理画面にアップロードする。
- ネットオウルから承認用メールが送られてくるので、メール本文内に記載されたURLにアクセスし、認証コード(こちらもメール本文内に記載されている)を入力し承認する。
- ネットオウル管理画面から中間証明書とSSL証明書をローカルPCにダウンロードする。
- ダウンロードした中間証明書とSSL証明書をサーバにアップロードする。
- Apacheのhttpd-ssl.confに中間証明書、SSL証明書、秘密鍵ファイルのPathを記載する。
- Apacheに記載したPathに今回新たに取得した中間証明書、SSL証明書、秘密鍵ファイルを設置する。
- Apacheを再読み込みさせ、設定を反映させる。
- ブラウザで動作確認(証明書の有効期限が更新されたことを確認)。
- 完了
秘密鍵を作成
でわ、秘密鍵を作成していきたいと思います。
秘密鍵ファイルを作成
以下のコマンドで、秘密鍵ファイルを作成します(2048bitで作成)。
# pwd
/root/work
# openssl genrsa -des3 -out www.xxxxx.jp.private.key 2048
パスフレーズの入力が求められますので、ここでは一旦、パスフレーズを入力します。
作成された秘密鍵ファイルの中身は、以下のように英数字の羅列になります。
秘密鍵は他人に知られたら絶対ダメですので、ここではもちろん伏せています。
あくまでサンプルです。
# vi www.xxxxx.jp.private.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,xxxxxxxxxx
※英数字の羅列
※英数字の羅列
※英数字の羅列
※英数字の羅列
※英数字の羅列
-----END RSA PRIVATE KEY-----
#
秘密鍵ファイルにパスフレーズを設定していると、Apacheの再起動時にパスフレーズを入力する必要があります。
ただ、再起動するたびにパスフレーズを入力することが面倒であれば、次のようにパスフレーズを解除しましょう。
秘密鍵ファイルのパスフレーズを解除
それでは、秘密鍵ファイルに設定されたパスフレーズを解除しましょう。
以下になります。
# openssl rsa -in www.xxxxx.jp.private.key -out www.xxxxx.jp.private_nopass.key
Enter pass phrase for www.xxxxx.jp.private.key:
writing RSA key
#
秘密鍵ファイルをパスフレーズなしで出力した、ということですね。
パスフレーズを解除すると、「Proc-Type」や「DEK-Info:」などの行が削除されます。
例)パスフレーズありの秘密鍵
# vi www.xxxxx.jp.private.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,xxxxxxxxxx
※英数字の羅列
※英数字の羅列
※英数字の羅列
※英数字の羅列
※英数字の羅列
-----END RSA PRIVATE KEY-----
#
例)パスフレーズなしの秘密鍵
# vi www.xxxxx.jp.private_nopass.key
-----BEGIN RSA PRIVATE KEY-----
※英数字の羅列
※英数字の羅列
※英数字の羅列
※英数字の羅列
※英数字の羅列
-----END RSA PRIVATE KEY-----
#
viで秘密鍵ファイルをオープンした際、上記の行がなければパスフレーズなしファイルと考えてよいでしょう。
CSR(証明書署名要求)を作成
以下のコマンドで、CSR(証明書署名要求)ファイルを作成します。
# openssl req -new -key www.xxxxx.jp.private.key -sha256 -out www.xxxxx.jp.csr
ファイルが作成できたら、後程、ネットオウルの管理画面にアクセスし、アップロードしましょう。
ネットオウル管理画面での作業
ネットオウル管理画面にて更新(or 新規)手続きを行う
ネットオウルの管理画面にログインし、更新手続きをしましょう。
手続きは更新期間の指定やクレジットカード決済等なので、非常に簡単です。
ネットオウルを契約している方でしたら、管理画面をご覧になればわかるかと思います。
作成したCSRをネットオウル管理画面にアップロードする
更新手続き(費用の支払い等)の後、CSRファイルをアップロードすれば、ネットオウルから承認メールがすぐ届きます。
ネットオウルから承認用メールが送られてくるので、指定されたURLにアクセスし認証コード(メール本文記載)を入れて承認します。
ネットオウル管理画面から中間証明書とSSL証明書をローカルにダウンロードする
ネットオウルの管理画面から、 CERT(SSL証明書)と中間証明書をローカルPCにダウンロードします。
サーバ側での作業
ネットオウルの管理画面での作業が終わりましたので、次はサーバ側の作業に入っていきます。
ダウンロードした中間証明書とSSL証明書をサーバにアップロードする
ダウンロードした上記2ファイルをWinSCP等で一旦、サーバにアップロードします。
アップロード先は一旦任意の場所にし、その後、Apacheが読み込む場所にそれぞれファイルを設置します。
Apacheのhttpd-ssl.confに中間証明書、SSL証明書、秘密鍵ファイルのPathを記載する
サーバに各ファイルをアップロードしたら、Apacheのhttpd-ssl.confにファイルを設置したPathを記述します。
# pwd
/usr/local/apache2/conf/extra
#
# vi httpd-ssl.conf
※中略
# WebサーバSSL証明書ファイル
SSLCertificateFile "/usr/local/ssl/certs/CORESSLxxxxx.cert"
# 中間CA証明書ファイル
SSLCertificateChainFile "/usr/local/ssl/certs/CORESSLxxxxxInt.cert"
# 秘密鍵ファイル
SSLCertificateKeyFile "/usr/local/ssl/private/www.xxxxx.jp.private_nopass.key"
Apacheを再読み込みさせ、設定を反映させる。
Apacheの記載に間違いがないか、構文チェックします。
# /usr/local/apache2/bin/apachectl -t
Syntax OK
#
構文は問題ないので、Apacheに設定を反映します。
※Apacheを再起動してしまうと閲覧中のユーザに影響が出るため、gracefulで安全に設定を反映させます。
# apachectl graceful
動作確認
あとは実際にブラウザで動作確認しましょう。
ブラウザで動作確認(証明書の有効期限が更新されたことを確認する)
証明書が問題なく更新できたことを確認するために、実際にブラウザでWEBサイトを確認しましょう。
証明書の有効期限を確認し、更新されていれば作業は完了です。
お疲れさまでした。
まとめ
久しぶりにSSL証明書の更新作業をしたので、いい復習になりました。
SSL証明書の新規作成や更新作業って、数年に一度が多いですからね。
次回はちゃんと覚えていることを祈りつつ。。
ご参考になれば幸いです。
コメント