WordPress(Lightsail)でhttpsを強制

apache設定にリダイレクト設定を追加するので設定ファイルを開き、

sudo vi /opt/bitnami/apache2/conf/bitnami/bitnami.conf

以下のリダイレクト設定を追加。

<VirtualHost _default_:80>
  DocumentRoot "/opt/bitnami/apache2/htdocs"
  # Redirect
  RewriteEngine On
  RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [R=301,L]

追加後にapacheの再起動。

sudo /opt/bitnami/ctlscript.sh restart apache

以下のように条件をつけても良かったが、VirtualHostで80ポートにきたら無条件でリダイレクトにした。

RewriteCond %{HTTPS} off

WordPress(Lightsail) をインストールして最初に

バナー削除

こんなバナーが出ているので非表示にする。

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

WordPressの管理画面にログイン

ユーザーは”user”固定ですがパスワードが不明なので、SSHで接続して、

cat bitnami_application_password

https://{ドメイン名}/wp-login.php にアクセスしてログインする。

ログインURLを変更

セキュリティ上、デフォルトの”wp-login.php”を変更する。
今回は“SiteGuard WP Plugin” “WPS Hide Login”を使用しました。

SSL証明書の自動更新

Let’s Encrypt で生成する証明書の有効期限は90日なので自動更新するように設定する。

$ sudo crontab -e

どのエディターを使うか聞かれるので、ひとまず3. /usr/bin/vim.basicで開いて、

0 0 1 * * letsencrypt renew; cp /etc/letsencrypt/live/{ドメイン名}/privkey.pem /opt/bitnami/apache2/conf/server.key; cp /etc/letsencrypt/live/{ドメイン名}/fullchain.pem /opt/bitnami/apache2/conf/server.crt; /opt/bitnami/ctlscript.sh restart apache

を追加。
毎月1日の0時0分に更新処理を動かす。

Lightsail(WordPress)にSSLを設定

Lightsailのロードバランサーを使用すれば、AWSで生成するSSLを利用できるが予算の関係で無料のSSL、Let’s Encryptを使用する。

SSH接続

キーペアーを使用してローカルからSSHクライアントで接続も可能ですが、Webコンソールからも接続できます。

letsencrypt をインストール

$ sudo apt-get install letsencrypt python-letsencrypt-apache

SSL証明書を生成

$ sudo letsencrypt certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d {ドメイン名}

こんな画面でメールアドレスの確認と規約への同意を求められます。

SSL証明書の配置

$ sudo cp /etc/letsencrypt/live/{ドメイン名}/fullchain.pem /opt/bitnami/apache2/conf/server.crt
$ sudo cp /etc/letsencrypt/live/{ドメイン名}/privkey.pem /opt/bitnami/apache2/conf/server.key
$ sudo /opt/bitnami/ctlscript.sh restart apache

WordPress 構築を考えるメモ

ブログから広告を削除したい、自由にカスタマイズしたいという理由でWordPressを構築する。
なるべく費用を掛けないようにするので、多少の手間はかかる。
自分で管理することも増えるし、性能の問題などもあるので、自分でサーバー管理したいとかの動機がなければ、はてなブログとかの有料プランの方がお得な気がする。
ここでは何をするかの手順を考えるだけ。

  1. WordPress を動作させるサーバー
    $5/月 と安いので AWSのLightsailにする

  2. 独自ドメイン設定
    静的IPアドレスを設定して、Route53でルーティングの設定

  3. SSL 対応
    Lightsail向けにロードバランサーがあるので、それを使うと楽だが、今のところ負荷分散させるほどでも無いので、$18/月 を節約するために無料のSSL証明書を使う

  4. SSL 証明書を取得
    Let’s Encrypt で取得

  5. SSL証明書を設定
    Apache に設定