さくらのVPSにApache2.4をインストールしたサイトをSSL対応したので、

その時の作業をメモとして残す。

さくらのVPSでSOY CMSを動かした時のメモの続き


今回はhttp://example.comというサイトで、

京都市内にあるという仮定で話を進めます。


ちなみにApacheのバージョンは2.4.7

CSRを使用して認証局から証明証を発行してもらう場合です。

Apache HTTP Server - Wikipedia


予備知識として、

CSRとは、ドメイン所有者が認証局に提出する署名リクエスト(Certificate Signing Request)


端末を開き、SSHでサーバにログイン後、下記のコマンドを実行


#何かの作業をする前のお約束(最新版に更新しておいた方が何かと楽)
sudo apt-get update
sudo apt-get upgrade

#opensslのインストール
sudo apt-get install openssl

#インストールされているか確認
openssl version

#mod_sslを有効化していない場合はmod_sslを有効にする
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo /etc/init.d/apache2 restart

#秘密鍵は認証局に提出する際に生成するCSRと同時に生成する

#鍵の作成 /etc/ssl/conf/以下に諸々のファイルを置くことにする
cd /etc/ssl
sudo mkdir conf
cd conf
#-outの後のファイル名はドメイン+年.keyの形式にした。2048は暗号の強さ。推奨サイズ
sudo openssl genrsa -des3 -out ./example.com.2016.key 2048

#鍵のパスワードの入力があります

#提出用のcsrを作成
sudo openssl req -new -key ./example.com.2016.key -out ./example.com.2016.csr

#鍵作成の際に決めたパスワードを入力します

#以下は入力事項 :の後が空のところは空欄ありです。
Country Name (2 letter code) [AU]:jp
State or Province Name (full name) [Some-State]:kyoto
Locality Name (eg, city) []:kyoto
Organization Name (eg, company) [Internet Widgits Pty Ltd]:example
Organizational Unit Name (eg, section) []:food
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

#CSRを開いて、認証局に通知する
cat example.com.2016.csr

生成したCSRをコピーして、SSLを購入する際のCSRの入力欄にそのままペーストします。

署名ハッシュアルゴリズムの選択がある場合はSHA256を選びます。


諸々の手続きが終わり、SSLの購入業者から証明証が届きます。

証明証が届いたら、再び端末を開き、


#サーバ証明書の作成
sudo emacs /etc/ssl/conf/example.com.2016.crt
#メール文面の証明書 SHA256を貼り付けしてファイルを新規作成

#中間CA証明書の作成
sudo emacs /etc/ssl/conf/example.com.2016.cer
#メール文面の中間CA証明書を貼り付けしてファイルを新規作成

#sslの設定の書き換え
sudo emacs /etc/apache2/site-available/default-ssl.conf

#下記の項目にファイルを配置したパスを指定
SSLCertificateFile      /etc/ssl/conf/example.com.2016.crt
SSLCertificateKeyFile /etc/ssl/conf/example.com.2016.key
SSLCertificateChainFile /etc/ssl/conf/example.com.2016.cer

#ファイルを保存し、apache2の再起動
sudo /etc/init.d/apache2 restart

#秘密鍵のパスワードの入力を求められる

これでSSLの設定は終了です。


https://example.comを開き、

アドレスバー横の鍵マークをクリックして、SSLの設定を確認しましょう。


補足

Mozillaの無料のSSLのLet's Encryptの設定は簡単でした。

当サイトをHTTP/2対応して表示の爆速化してみた