Lightsailをhttpsで接続するには、通常ロードバランサを設定し、ロードバランサにhttpsの設定をする必要があります。
Lightsailは3.5ドルから使用でき低価格にもかかわらず、ロードバランサの料金は18ドル/月であるため、料金を安くなるようにLightsailを選択した意味がなくなりそうな価格となってしまいます。
そこでなんとか安くできないか探したところ無料でSSL証明書を設定できる方法がありました。
SSL証明書は、昔ならテスト用に自己証明書を作成したり、安いところを探したものですが、
Lets’s Encryptという認証局を使用すると無料でSSL証明書が作成できます。
いろんなサイトでやり方書いていますが、クライアントをインストールして設定が必要なようで
簡単にできるか試してみます。
以前作成したLightsailの環境で試してみます。
①ドメイン取得
前提としてドメインが必要なので、無料で作成できるfreenomで取得します。
取得方法については省略します。
取得した「idealive-t-pj1.tk」でLightsailのページが表示されるか確認。
②SSL証明書の取得
Lego Clientのインストール
「TeraTerm」でLightsailの環境に接続してコマンドを入力していきます。
1 2 3 4 |
cd /tmp curl -s https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - tar xf lego_v2.0.1_linux_amd64.tar.gz sudo mv lego /usr/local/bin/lego |
※「lego_v2.0.1_linux_amd64.tar.gz」の部分はそのときのバージョンに合わせてください。
Bitnamiのサービスを止める
1 |
sudo /opt/bitnami/ctlscript.sh stop |
証明書の発行
1 |
sudo lego --tls --email="xxx@xxx" --domains="xxxxx" --path="/etc/lego" run |
※xxx@xxxにメールアドレス、xxxxxにドメインを設定してください。
※いくつか参考にしたページは「–tls」の記述がなかったためエラーになりました。
証明書の置き換え
1 2 3 4 5 6 7 |
sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old sudo ln -s /etc/lego/certificates/idealive-t-pj1.tk.key /opt/bitnami/apache2/conf/server.key sudo ln -s /etc/lego/certificates/idealive-t-pj1.tk.crt /opt/bitnami/apache2/conf/server.crt sudo chown root:root /opt/bitnami/apache2/conf/server* sudo chmod 600 /opt/bitnami/apache2/conf/server* |
※元ファイル「server.crt」「server.key」「server.csr」を移動して、作成された「idealive-t-pj1.tk.key」「idealive-t-pj1.tk.crt」にシンボリックリンクを貼ります。
Bitnamiのサービス再起動
1 |
sudo /opt/bitnami/ctlscript.sh start |
③確認
httpsで接続できるか確認
できました。
※Let’s Encryptの有効期限は90日間で切れるため、
通常は自動更新の設定をするのですが、時間の都合上ここでいったん終了します。
思ったより簡単にできて驚きでした。