SSL証明書 更新時設定メモ


SSLを設定します

前書き

春は出会いと別れの季節。
冬の様な寒さもまだありますが、そんな季節になってまいりました。

すでにSSLが設定されているサーバーにも更新の時期が。

今までSSLサーバー証明書には触れることなく生きてきましたが、
この直近で立て続けに更新作業をして、同じところで躓いたので
自分用の備忘録を公開してみる、というのが今回のスタンスになります。

SSL設定は他にもたくさんの記事がありますが、特に真新しいことはしていません。
あくまでも自分用の備忘録としての位置付けを強調しておきます。

環境

サーバー関連

Server version: Apache/2.2.15 (Unix)
サーバーにはターミナルからsshでログインしております。

openssl version
OpenSSLがインストールされている環境です。

ディレクトリ・ファイル関連

ssl.conf / virtualHost設定ディレクトリ /etc/httpd/conf.d/
CSR・秘密鍵の保管ディレクトリ /root/ssl/2017

更新年のたびに年のディレクトリを増やしていく、
そんな管理方法であります。
上書きして失敗したら怖いですしね。

ssl.confファイル ssl.conf
sslサイトのvirtualHost設定ファイル virtualhost_ssl.conf

そのままです。特にひねりもありません。
シンプル is ベスト

サーバー証明要求ファイル ssl.hoge.com.csr
秘密鍵ファイル ssl.hoge.com.key
中間証明書ファイル ssl.hoge.com.cer
サーバー証明書ファイル ssl.hoge.com.crt

hoge.comで揃えてみました。
それぞれの内容はここでは触れませんので、どうぞお調べください。

実作業

秘密鍵を生成

openssl genrsa -des3 -out /root/ssl/2017/ssl.hoge.com.key 2048
鍵長が2048以上の場合は2048まで入力するのがお約束です。
ここではパスフレーズを入れるパターンでやっていきます。

サーバー証明要求ファイル(CSR)作成

openssl req -new -key /root/ssl/2017/ssl.hoge.com.key -out /root/ssl/2017/ssl.hoge.com.csr

たった今生成した秘密鍵を使ってCSRファイルを生成します。
改行されて表示されているかもしれませんが、改行はしません。

この後、根掘り葉掘り聞かれますが、誠実に回答してください。

国名 Country Name : JP
都道府県 State or Province Name : Tokyo
市区町村 Locality Name : Shibuya-ku
組織名(会社名) Organization Name : Hoge.co.ltd,
部署名(ない場合はハイフン) Organization Unit Name : Sales / -
Webサーバー Common Name : *.hoge.com
このあとは入力不要です。

サーバー証明書申し込み

サーバー証明書発行サイトで行います。
先ほど生成されたCSRの内容を求められるので、
最初のハイフンから最後のハイフンまできっちりコピーして入力フォームに貼り付けます。
もちろん、文末の改行は不要です。

他の内容は、そのサイトのQ&Aを確認してください。

中間証明書

申し込み時にサイトから中間証明書がメールで送信されます。
ない場合はサイトに転がっているので、環境にあったものを見つけてください。

vi /root/ssl/2017/ssl.hoge.com.cer

viである必要はありませんが、最初のハイフンから最後のハイフンまできっちりコピーしてファイルに貼り付けます。
ここでも文末の改行は不要です。

サーバー証明書

サーバー証明書発行サイトで確認できるかと思います。

vi /root/ssl/2017/ssl.hoge.com.crt
viである必要はありませんが、最初のハイフンから最後のハイフンまできっちりコピーしてファイルに貼り付けます。
ここでも文末の改行は不要です。大事なことなので3回言いました。

ssl.conf修正

ディレクトリを変えているので、ssl.confの修正が必須となります。

vi /etc/httpd/conf.d/ssl.conf

エディタを開き、以下の箇所を書き換えます。

SSLCertificateFile /root/ssl/2017/ssl.hoge.com.crt
SSLCertificateKeyFile /root/ssl/2017/ssl.hoge.com.key
SSLCertificateChainFile /root/ssl/2017/ssl.hoge.com.cer

それぞれ、サーバー証明書、秘密鍵、中間証明書を正しいパスで編集します。

virtualhost修正

必要に応じてvirtualhostも書き換えます。

vi /etc/httpd/conf.d/virtualhost_ssl.conf

ssl.confと同じ様にエディタを開き、以下の箇所を書き換えます。

SSLCertificateFile /root/ssl/2017/ssl.hoge.com.crt
SSLCertificateKeyFile /root/ssl/2017/ssl.hoge.com.key
SSLCertificateChainFile /root/ssl/2017/ssl.hoge.com.cer

それぞれ、サーバー証明書、秘密鍵、中間証明書を正しいパスで編集します。

証明書と秘密鍵が一致しているかチェック

このままapacheを再起動しても良いですが、止まってしまったら大変!
ということで、それぞれ一致しているかを確認してみましょう。

サーバー証明書申し込み
openssl req -noout -modulus -in /root/ssl/2017/ssl.hoge.com.csr

秘密鍵
openssl rsa -noout -modulus -in /root/ssl/2017/ssl.hoge.com.key

サーバー証明書
openssl x509 -noout -modulus -in /root/ssl/2017/ssl.hoge.com.crt

もしエラーが出る様でしたら、まずは各ファイルを見てみましょう。
自分はサーバー証明書ファイルのコピーができておらず、ここで何度も涙を見ました。。。

*** サーバー再起動
エラーが出なかった場合は晴れてapacheを再起動しましょう。

service httpd restart

Stopping httpd: [ OK ]

Starting httpd: [ OK ]

このフレーズが出たらOKです。
ホッと一息つけますね。