Ubuntu20+Apache+WordPressをSSL/TLS化する方法

プログラミング

前提

  • CERT(SSL証明書)、中間証明書、秘密鍵を作成済み
  • サーバーにログインするためのSSHキーを所有している
  • 細かいバージョン情報は以下に記載
# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

# apachectl -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2020-08-12T19:46:17

# php -r "phpinfo();" | grep "PHP Version"
PHP Version => 7.4.3

CERT(SSL証明書)、中間証明書、秘密鍵をサーバーに配置する

配置できたら、FTPでもなんでもいい。
以下ではSCPコマンドでローカルからサーバーにキーを配置する

## CERT(SSL証明書)
$ scp  -i ~/.ssh/<ssh key> <CERT(SSL証明書)パス> root@<サーバードメイン>:/etc/ssl/certificate.crt

## CERT(SSL証明書)パス
$ scp -i ~/.ssh/<ssh key> <CERT(SSL証明書)パス> root@<サーバードメイン>:/etc/ssl/cabundle.crt

## 秘密鍵
$ scp  -i ~/.ssh/<ssh key> <秘密鍵パス> root@<サーバー名>:/etc/ssl/private/privatekey.pem

ディレクトリが存在しない場合があるので、mkdir でディレクトリを作る必要があるかもしれない。

Apacheの設定ファイルで証明書を設定する

apache2のconfファイルに443の場合に、SSL/TLS化するようにする。

# cat /etc/apache2/apache2.conf
# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
#	/etc/apache2/
#	|-- apache2.conf
#	|	`--  ports.conf
#	|-- mods-enabled
#	|	|-- *.load
#	|	`-- *.conf
#	|-- conf-enabled
#	|	`-- *.conf
# 	`-- sites-enabled
#	 	`-- *.conf

こんな感じのファイル構成になっていたのでsite-enabled/*.confを修正する。

$ vi /etc/apache2/sites-enabled/000-default.conf
## 以下を追加
<VirtualHost *:443>
        ServerAdmin webmaster@localhost

        ServerName help.yuicomilist.com
        ServerAlias www.help.yuicomilist.com

        DocumentRoot /var/www/html

        <Directory /var/www/html/>
            Options FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

        SSLEngine on
        SSLCertificateFile /etc/ssl/certificate.crt
        SSLCertificateChainFile /etc/ssl/cabundle.crt
        SSLCertificateKeyFile /etc/ssl/private/privatekey.pem

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Apacheを再起動する

# sudo service apache2 restart

とりあえず、ここまででhttpsのSSL/TLS化は完了。

ワードプレスのReally Simple SSLを追加して、有効化する

Port80に来た時リダイレクトを自動でやってくれるので、このプラグインを入れる(.htaccessの修正面倒かっただけ。。)

No setup required! You only need an SSL certificate, and this plugin will do the…
wordpress.org