SSL証明書の新規発行および更新する流れについて|Apacheの設定とSSL証明書

パソコンと猫様 CentOS7
パソコンと猫様
この記事は約8分で読めます。

はじめに

SSL証明書の有効期限が近づいてきましたので、いつも通り更新作業をしようと思います。

ただ、これもいつものことなのですが、たまにしかやらない作業のため、前回どのように手順を踏んだのかいまいち思い出せない。。

ということで、時間もなかったので調べながらササっとと終わらせました。

今回は私がネットオウルを使用しているため、ネットオウルを例に設定していきたいと思います。

作業の流れ

基本的な作業の流れは、以下になります。

  1. 秘密鍵を作成。
  2. CSR(証明書署名要求)を作成。
  3. ネットオウルの管理画面にて更新(or 新規)手続きを行う。
  4. 作成したCSRをネットオウル管理画面にアップロードする。
  5. ネットオウルから承認用メールが送られてくるので、メール本文内に記載されたURLにアクセスし、認証コード(こちらもメール本文内に記載されている)を入力し承認する。
  6. ネットオウル管理画面から中間証明書SSL証明書をローカルPCにダウンロードする。
  7. ダウンロードした中間証明書SSL証明書をサーバにアップロードする
  8. Apacheのhttpd-ssl.conf中間証明書SSL証明書秘密鍵ファイルのPathを記載する。
  9. Apacheに記載したPathに今回新たに取得した中間証明書SSL証明書秘密鍵ファイルを設置する。
  10. Apacheを再読み込みさせ、設定を反映させる。
  11. ブラウザで動作確認(証明書の有効期限が更新されたことを確認)。
  12. 完了

秘密鍵を作成

パソコンと猫ちゃん
パソコンと猫様

でわ、秘密鍵を作成していきたいと思います。

秘密鍵ファイルを作成

以下のコマンドで、秘密鍵ファイルを作成します(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

動作確認

iPhoneとパソコンに二股中。。
iPhoneとパソコンに二股中。。

あとは実際にブラウザで動作確認しましょう。

ブラウザで動作確認(証明書の有効期限が更新されたことを確認する)

証明書が問題なく更新できたことを確認するために、実際にブラウザでWEBサイトを確認しましょう。

証明書の有効期限を確認し、更新されていれば作業は完了です。

お疲れさまでした。

まとめ

久しぶりにSSL証明書の更新作業をしたので、いい復習になりました。

SSL証明書の新規作成や更新作業って、数年に一度が多いですからね。

次回はちゃんと覚えていることを祈りつつ。。

ご参考になれば幸いです。

コメント

タイトルとURLをコピーしました