【VPSサーバ構築10】常時SSL化を実装する

     

常時SSL化を実装する

今回はサイトに常時SSL化を実装します。

実施するにあったて以下の注意点があります。
・独自ドメインの設定が必要
・Apacheに「mod_SSL」がインストールされている
・3ヵ月ごとに更新が必要

独自ドメインについては以前の記事で設定していますので、未実施の方はそちらをご参考下さい。
参考:【VPSサーバ構築07】独自ドメインを設定する

mod_SSLのインストールは前回の記事で実施していますのでそちらをご参考ください。
参考:【VPSサーバ構築08】WordPressのログイン名とパスワードを確認する(phpMyAdmin)

更新をいちいちする手間も省きたいので、今回はその設定も行います。

インストールする証明書は無料の「Let’s Encrypt」にします。
※有料・無料でセキュリティ強度は変わりません
参考:30.ウェブサイトにドメイン認証SSLを実装する/プラグインで常時SSL化する

 

では「Let’s Encrypt」をインストールします。
※root権限が必要なコマンドはsudoコマンドで対応しています。

まず以下のコマンドを入力します。
$ sudo yum install certbot python2-certbot-apache
※途中で質問があったら「y」をクリックします。

Complete!と表示されたらOKです。

次に以下のコマンドで証明書をインストールします。
$ sudo certbot –apache -d 「サイトの独自ドメイン」

 

いくつか質問がありますので入力していきます。

①通知を受け取るメールアドレスを入力

②Aを入力(規約に同意)

③Yを入力(Let’s Encryptパートナーにメールを公開。後悔しないなら「N」を入力)

④エラー(設定要求)が吐き出されました。
ポート80に仮想ホストを追加が必要とのことなので、その設定を行います。

 

httpd.conf」ファイルを編集します。
まずは「httpd.conf」格納ディレクトリに移動します。
$ cd /etc/httpd/conf

バックアップファイルを作成します。

$ sudo cp httpd.conf ./httpd_bkup.conf

「httpd.conf」ファイルをエディタで開きます。

$ sudo vi httpd.conf

ファイルの一番に下に下記内容を追記します。

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin root@toybox-blog.jp
DocumentRoot /var/www/html
ServerName toybox-blog.jp
</VirtualHost>

 

追記が完了したら保存して、再度以下のコマンドを入力します。
$ sudo certbot –apache -d 「サイトの独自ドメイン」

未設定の質問を聞かれますので、「2」(httpアクセスをhttpsにリダイレクトする)を入力します。

 

httpdを再起動します。

$ sudo systemctl restart httpd

続いてwp-config.phpを編集します。
WordPressディレクトリにあるwp-config.phpファイルを編集します。

viコマンドで以下の2行を編集します。

define(‘WP_SITEURL’,’http://toybox-blog.jp/「WordPressディレクトリ」/’);
define(‘WP_HOME’,’http://toybox-blog.jp/’);

define(‘WP_SITEURL’,’https://toybox-blog.jp/「WordPressディレクトリ」/’);
define(‘WP_HOME’,’https://toybox-blog.jp/’);

 

次にhttpsをファイアウォールで許可します。

$ sudo firewall-cmd –permanent –add-service=https

※permanent,addの前のハイフン(‐)はふたつです

設定を読み込みます。

sudo firewall-cmd –reload

 

最後にWordPressのブラグインで常時SSL化を実施します。

WordPressの管理画面から「Really Simple SSL」をインストールします。

 

ブラグインを有効化したら、【はい、SSLを有効化します。】をクリックします。

   

以下のメッセージが表示されれば常時SSL化は完了です。

     

     

Let’s Encrypt SSL証明書の更新の自動化

SSL証明書の有効期限は3ヵ月です。
3ヵ月に一回とはいえ、いちいちコマンド打って更新するのは面倒(忘れる可能性のある)なので、自動更新するようにします。

方法はcrontabファイルに定期的にcertbotコマンドを打つような追記をします。
まずはcrontabファイルの格納ディレクトリに移動します。
$ cd /etc

バックアップファイルを作成します。
$ sudo cp crontab ./crontab.bak

エディタでcorntabを編集します。
$ sudo vi crontab

ファイルの最終行に以下の文を追記します。
0 3 20 * * root /usr/bin/certbot renew
(毎月20日午前3時にroot権限でcertbotを更新する)

 

追記したら保存して完了です。

これでサイトのバード側の初期構築はほぼ終わりです。
あとはWordPressによるサイトのデザインと運用に移ります。
サーバとしての作りこみはまだまだできる余地がありますが、個人ブログとしては最低限の構築ができたのではないかと思います。

サーバとしてまた何か追加があった際は記事にしたいと思います。