openssl
SSL証明書
SSL証明書更新
Apache2.2
More than 1 year has passed since last update.


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です。

ホッと一息つけますね。