Bitnami wordpressをLet’s Encryptを使って無料でSSL化【AWS】

  • このエントリーをはてなブックマークに追加
  • LINEで送る

サイトのSSL化はこのブログのように個人情報の入力がないサイトでは本来あまり必要はないかもしれませんが、Googleが推奨しているためSEO的に気になる方は対策されている方も多いのではないでしょうか。

そこで、AWSのBitnami wordpressでLet’s Encryptを使って無料でSSL化する手順についてまとめました。

Gitをインストール

Let’s EncryptをインストールするためにはGitが必要になりますので、まずはGitをインストールします。

すでにインストールされている場合は必要ありません。

■コマンド

sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext
sudo apt-get install git

Let’s Encryptのインストール

EC2インスタンスにLet’s Encryptをインストールします。

■コマンド

git clone https://github.com/letsencrypt/letsencrypt

▼実行結果

Cloning into 'letsencrypt'...

remote: Counting objects: 34858, done.

remote: Compressing objects: 100% (22/22), done.

remote: Total 34858 (delta 13), reused 0 (delta 0), pack-reused 34836

Receiving objects: 100% (34858/34858), 9.31 MiB | 1.81 MiB/s, done.

Resolving deltas: 100% (24761/24761), done.
git cloneしたディレクトリに展開されるので、あらかじめLet’s Encryptを保存したいディレクトリに移動してから実行してください。

■コマンド

cd letsencrypt
./letsencrypt-auto --help

先ほどcloneしたディレクトリに移動してhelpすると必要なモジュールがインストールされます。

Let’s EncryptでSSL証明書を発行

SSL証明書の発行を行います。

■コマンド

./letsencrypt-auto certonly -a standalone -d <domain>

途中メールアドレスの入力と規約の同意を求められます。

▼実行結果

IMPORTANT NOTES:
   - Congratulations! Your certificate and chain have been saved at
     /etc/letsencrypt/live/column.clintal.com/fullchain.pem. Your cert
     will expire on 2016-05-08. To obtain a new version of the
     certificate in the future, simply run Let's Encrypt again.
   - If you like Let's Encrypt, please consider supporting our work by:

     Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
     Donating to EFF:                    https://eff.org/donate-le

Congratulations!とでればSSL証明書の発行に成功しています。
※以下のエラーが出た場合はApacheを一度停止してから再度コマンドを実行してください。(sudo /opt/bitnami/ctlscript.sh stop apache)
At least one of the (possibly) required ports is already taken.

生成されたSSL証明書は以下で確認できます

■コマンド

sudo ls /etc/letsencrypt/live/<domain>

Apacheでhttps通信を有効化

次にApacheの設定でSSLを有効化していきます。

/opt/bitnami/apache2/conf/httpd.confの中身を編集します。

■/opt/bitnami/apache2/conf/httpd.confのコメントアウトを外す

#Include conf/extra/httpd-ssl.conf
↓
Include conf/extra/httpd-ssl.conf

■/opt/bitnami/apache2/conf/extra/httpd-ssl.confの編集

SSLCertificateFile "/etc/letsencrypt/live/<domain>/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/<domain>/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/<domain>/chain.pem"
※元の設定はコメントアウトするか削除する

これでSSLの設定は完了なのですが、ここでApacheを再起動すると、

Address already in use: AH00072: make_sock: could not bind to address [::]:443

というエラーが出ます。

これを解消するためには以下を編集してください。

■/opt/bitnami/apache2/conf/bitnami/bitnami.confの編集

# Default SSL Virtual Host configuration
ここからファイルの最終行まですべてコメントアウト

再度Apacheを再起動すると、httpsでは通信ができるようになりましたが、wordpress用の設定が入っおらず、DocumentRootがおかしくなっています。

■/opt/bitnami/apache2/conf/extra/httpd-ssl.confの編集

</VirtualHost>
↓
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
</VirtualHost>
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf"

以上で、HTTPS通信が有効になるので、Apacheを再起動します。(sudo /opt/bitnami/ctlscript.sh restart apache)

HSTS(HTTP Strict Transport Security)によるhttpsリダイレクトの設定は以下で行います。

■/opt/bitnami/apache2/conf/extra/httpd-ssl.confの編集

<VirtualHost _default_:443>
Header set Strict-Transport-Security "max-age=315360000; includeSubDomains"
※この行を追加

これ以外にもwordpress側の設定も必要になります。また、EC2のセキュリティーグループでHTTPSが許可されていることも確認してください。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

SNSでもご購読できます。

コメントを残す