LoginSignup
16
12

More than 5 years have 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です。
ホッと一息つけますね。

16
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
12