[メモ]http”s” WordPressブログサイトをSSL化する方法

SSL(Secure Sockets Layer)とはデータ送受信を暗号化する技術でなんたら

SSLしていないWebサイトは閲覧前に警告が出たりします。

当然、閲覧者に不信感を与えるので、せっかく作ったWebサイトを閲覧してもらえません。

SSL化に必要なSSL証明書は無料でも入手可能です。

このページではLet’s Encrypt認証局から無料のSSL証明書を入手して、WordPressブログサイトのSSL化方法を記述します。

実行環境

PC:Raspberry Pi 4 Model B 8GB
OS:Raspberry Pi OS(Bullseye)
Webサーバ:Apache2.4

前提条件

  • 「apache」でWebサーバを立ち上げ済
  • 立ち上げたWebサーバにWordpressをインストール済
  • ポートの443番を開放済

apache設定変更

SSL・VirtualHost設定の有効化

下記コマンドを実行してSSLを有効にします。

コマンドライン
$ sudo a2enmod ssl

下記のコマンドを実行してSSL用のVirtualHost設定を有効にします。

コマンドライン
$ sudo a2ensite default-ssl

下記コマンドを実行してエラーチェックを行います。

コマンドライン
$ apache2ctl congfigtest

「Syntax OK」と表示されたら、下記コマンドを実行してapacheを再起動します。

コマンドライン
$ sudo apache2ctl restart

ちなみに、apacheを再起動するコマンドはいくつかあるので、お好みでどうぞ。

設定変更のうんちく

「/etc/apache2/」ディレクトリには名前の前方が「conf」、「mods」、「sites」で、後方がそれぞれ「available」、「enabled」となっているディレクトリがあります。

下記のコマンドを実行することで「available」にあるconfファイルのシンボリックリンクを「enabled」に作成することで設定が有効になる仕組みです。

コマンドライン
$ sudo a2enconf [ファイル名]  //confディレクトリにあるconfファイルの有効化
$ sudo a2enmod [ファイル名]   //modsディレクトリにあるconfファイルの有効化
$ sudo a2ensite [ファイル名]  //sitesディレクトリにあるconfファイルの有効化

無効化するにはコマンドの「en」を「dis」に変えれば、シンボリックリンクが削除されます。

SSL証明書の入手

Certbotのインストール

「Certbot」はLet’s Encrypt認証局からSSL証明書を入手するためのパッケージです。

下記のコマンドを実行して「Certbot」および追加パッケージをインストールします。

コマンドライン
$ sudo apt install certbot
$ sudo apt install python-certbot-apache

SSL証明書の入手

下記コマンドを実行してSSL証明書の発行およびインストールを行います。

コマンドライン
$ sudo certbot --apache

いくつか質問事項があるので文章に従って入力してください

  • SSL証明書を発行するドメインの選択
  • httpsへのリダイレクト設定をしない(1)する(2) #基本(2)新規発行のみ?
  • SSL証明書の再取得(1)更新(2) #すでにSSL証明書が発行されている場合?

エラーが発生しないで「Congratulations! ~」と表示されれば設定完了です。

WordPress設定変更

WordPressの「設定」>「一般」で「WordPress アドレス (URL)」と「サイトアドレス (URL)」を「https://」で始まる形に変更します。

Webサイトがhttpsになっているか確認する。なっていなかったらapacheを再起動する。

すでに記事等がある場合は内部リンクや画像URLも変更してください。

プラグインもあるはずです。

SSL証明書の自動更新設定

Let’s Encrypt認証局から入手したSSL証明書の有効期限は90日です。

そのため、期限を過ぎてしまう前に延長申請を行う必要が発生しますが、「Certbot」コマンドを使ったシェルスクリプトを作れば「cron」で自動化できます。

まず、下記のソースコードを入力したシェルスクリプトを作成します。

ファイル名は「certbot」とします。

certbot
#!/bin/bash
certbot renew &> /dev/null

このシェルスクリプトを「/etc/cron.weekly」に配置します。

下記のコマンドを実行して、シェルスクリプトに実行権限を付与します。

コマンドライン
$ sudo chmod 755 /etc/cron.weekly/certbot

これで毎週決まった時間に証明書の延長申請が行われます。

シェルスクリプトの実行タイミングは下記コマンドを実行することで確認できます。

コマンドライン
$ less /etc/crontab

ちなみに、SSL証明書有効期限が30日未満になるまで実際に期限の延長はされません。

強制的に更新する方法もありますが、短期間に連続で行うと更新ができなくなるため注意してください。

参考

下記の情報元を参考にしました。この場を借りて、感謝申し上げます。

SSL:通信を暗号化し安全を確保!ラズパイwebサーバをhttpsに対応させる手順

Raspberry PiへのSSL証明書導入(Let’s Encrypt)

タイトルとURLをコピーしました