
2022 Lightsailで常時SSLでWordPress動かす方法 AWS
追記,2022/05.30
今は下記の方法でコマンド一発で出来るようになってる。すごい。
下記のような方法は全て不要になってます。てか、今下記の行程をやるとバグりますw
ーーーーーーーーーー
追記,2022/02.13
下記の方法で出来なくなった。下記の記事を参考にしたらできた
2021 Lightsailで常時SSLでWordPress動かす方法 AWS
#Lightsail #WordPress #SSL #https #AWS
これまでLightsailで作ったWordPressで常時SSL(https)するとき、下記のQiitaの記事を参考にしていました。
しかし、2021年現在、多少やり方が変わってるため更新の記事を書きます。
上記の記事で言うところの、コマンドラインからの手順までは同じなので、コマンドを打つところから始めます。
bitnami banner 削除
https://lebh.net/ というところをあなたのドメインに変えてください。
$ sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
$ sudo /opt/bitnami/ctlscript.sh restart apache
gitをインストール
$ sudo apt-get install git
snapdをインストール
$ sudo apt install snapd
Lightsailのサーバーのosを確認してください
$ cat /etc/issue
Debian GNU/Linux 10 \n \l
coreとcertbotをインストール
$ sudo snap install core; sudo snap refresh core
$ sudo snap install --classic certbot
certbot確認
$ /snap/bin/certbot --version
certbot 1.11.0
一応パスを通す
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
LetsencryptによるSSL化
$ sudo certbot certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d lebh.net
$ sudo cp /etc/letsencrypt/live/lebh.net/fullchain.pem /opt/bitnami/apache2/conf/server.crt
$ sudo cp /etc/letsencrypt/live/lebh.net/privkey.pem /opt/bitnami/apache2/conf/server.key
$ sudo /opt/bitnami/ctlscript.sh restart apache
もしスナップでエラーが出る場合
ここら辺を試してみてください。
$ sudo snap install core
$ sudo apt install snapd
httpsにリダイレクトする
ApacheとWordpressのconfigにそれぞれリダイレクトのための設定を書き込む。
vi /opt/bitnami/apps/wordpress/conf/httpd-prefix.conf
- RewriteCond "%{HTTP_HOST}" ^ec2-([0-9]{1,3})-([0-9]{1,3})-([0-9]{1,3})-([0-9]{1,3})\..*\.amazonaws.com(:[0-9]*)?$
- RewriteRule "^/?(.*)" "%{REQUEST_SCHEME}://%1.%2.%3.%4%5/$1" [L,R=302,NE]
+ RewriteCond %{HTTPS} !=on
+ RewriteRule ^/(.*) https://lebh.net/$1 [R,L]
vi /opt/bitnami/apps/wordpress/htdocs/wp-config.php
define('WP_SITEURL', 'https://lebh.net/');
define('WP_HOME', 'https://lebh.net/');
証明書更新のシェルを準備してCron実行を仕掛ける
letsencryptを使った証明書更新のためのシェルを書いて、Cron実行の設定を追加する。
sudo vi /etc/letsencrypt/renew-certificate.sh
#!/bin/bash
sudo /opt/bitnami/ctlscript.sh stop apache
sudo /usr/local/certbot/certbot-auto --email="vaaaval@gmail.com" --domains="lebh.net" renew
sudo cp /etc/letsencrypt/live/lebh.net/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo cp /etc/letsencrypt/live/lebh.net/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo /opt/bitnami/ctlscript.sh start apache
# crontab -e (root実行、取扱注意)
0 0 1 * * /etc/letsencrypt/renew-certificate.sh 2> /dev/null