LigthsailをHTTPS化する

# はじめに
lightsailでWordPressを触ってみたついでに、HTTPS化してみたので、その手順を記事にしました。


# 概要
以下の流れになります。

1. Lightsail作成
1. 静的IPアタッチ
1. ドメイン・DNSの設定
    - ここではRoute53にドメインを用意し、Lightsail側で管理するようにします
1. HTTPS化
    - Let's Encryptを使います
        - ACMではないです
        - 自動更新してくれるツールがLightsailに内蔵されています


# やったこと
以下を参考に進めていきます。

https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/amazon-lightsail-tutorial-launching-and-configuring-wordpress


## Lightsail でインスタンスを作成
まずは「ステップ 2: Lightsail で WordPress インスタンスを作成する」を参考に、WordPressのサーバをつくります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/b825c437-a8eb-1815-04ba-85cf9105c3a9.png)

一番安価のを選びました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/6d55ed59-c403-eb2d-d177-4e559dda2896.png)

インスタンスの名前を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/6a5fb403-93cd-16cf-d656-14298e87bbcf.png)

作成されるまで、少々待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/1616bfb4-04c4-8754-1038-62094bec2f7f.png)

作成されると、以下のような画面になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/bae0c8f2-f3d8-f491-f864-fc199cfdf8aa.png)


## 静的IPをアタッチ
「ステップ 5: Lightsail の静的 IP アドレスを作成して WordPress インスタンスにアタッチする」を参考に、インスタンスに静的IPをアタッチしてきます。

インスタンスを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/eb8ed538-5fff-7b38-b3c4-9a26baa93a16.png)

[Networking]から[Attach static IP]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/1892f7b1-bb2e-0011-8c12-92c257dd9e8d.png)

名前を付けてアタッチします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/7dc557c0-03bf-a191-6f87-c5be2e062faa.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/ca8b7e60-313f-b307-89a6-41a18aa26223.png)

アタッチされました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/1e0e3a00-784c-5d70-7d10-460566008cd9.png)

## Route53登録済みのドメインに割り当て
次は用意したドメインで、先の静的IPをアタッチしたインスタンスにルーティングするようにします。
事前にRoute53でドメインを登録しておきます。

[ドメインとDNS]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/4454a3c2-8d6d-c32d-0bb5-3d40f19abada.png)

DNSゾーンの作成をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/52b2b70b-d835-2769-1818-27be73837722.png)

Route53のドメインを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/48534a72-eaeb-3c59-7fc5-59cf06a81694.png)

DNSゾーン作成すると、以下の画面になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/b0c4e62e-e599-144e-1c69-2b81c7f7c968.png)



ドメインのネームサーバーの値を、上記のアドレスに変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/e4a8f188-f998-e0d2-ddf6-8ed0fcdb87f3.png)

これを押すと自動で設定してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/206b123e-2280-bbed-97c9-3b7f85e9734c.png)

これで、Lightsailでドメインが管理されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/d388ff1b-798c-60ec-2d2a-ded331510f8a.png)

ドメインにリソース（今回は先ほど作成した静的IP）を割り当てしてきます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/a21e1343-9f24-e054-3af6-d127f5f42962.png)

DNSレコードタブにて、Aレコードが追加されていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/ad0be60e-bd5f-e996-8f35-83af7fcbcf65.png)


## HTTPS化
内蔵されているbncert ツールを使用することで、用いるドメインのSSL/TLS 証明書を Let's Encrypt 認証機関から簡単に要求して用いることができます。
またこのツールは、定期的に自動更新してくれるようなので、運用の手間も削減できます。

以下の２つのサイトを参考にしました。

https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/amazon-lightsail-enabling-https-on-wordpress

https://sossy-blog.com/useful/1383/

SSHのウィンドウを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/a0bc0a6d-069c-8569-5e45-e87b53735889.png)

bncert ツールを使います。今回は古いバージョンだったようで、更新する旨表示されました。Yで更新します。
```bash
sudo /opt/bitnami/bncert-tool

An updated version is available. Would you like to download it? You would need to run it m
anually later. [Y/n]: Y
```
更新後、再実行します。
```bash
# 再実行
sudo /opt/bitnami/bncert-tool

# 対象のドメインをカンマ区切りで設定。
## 今回は先のドメインを1つだけ指定。
Domain list []: 

# wwwは使わないのでn
The following domains were not included: www.[直前に設定したドメイン]. Do you want to add them? [Y/
n]: n

Warning: No www domains (e.g. www.example.com) or non-www domains (e.g. 
www.example.com) have been provided, so the following redirections will be 
disabled: non-www to www, www to non-www.
Press [Enter] to continue:

# リダイレクトはする
Enable HTTP to HTTPS redirection [Y/n]: Y

# 設定に問題なければY
Changes to perform

The following changes will be performed to your Bitnami installation:
(略)
Do you agree to these changes? [Y/n]: Y

# Let's Encrypt証明書に関連付けるメールアドレスを入力
E-mail address []:

Do you agree to the Let's Encrypt Subscriber Agreement? [Y/n]: Y

Press [Enter] to continue:

```

無事、HTTPS化されていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/6bd2050a-dca6-3044-358a-c680e91d4673.png)


# おわりに
AWSのサーバでありながらHTTPS化にACMを使わない点や、内蔵されているツールで設定する点など、戸惑う点も多かったですが、他社レンタルサーバでの設定と比べても、そこまで複雑ではないと感じました。

AWSのサービス群の一つとして扱え、その点が使いやすいサービスと感じましたので、機会があれば使ってみたいと思いました。