LightSail環境にSSL証明書を導入して信頼できるブログにするための手順

ブログ運営
スポンサーリンク

以下の記事でLightSail上でWordPressを動かせるようになりました。しかし、ブログのページを開くとSSL証明書が登録されていないのでセキュアじゃないよって怒られているはずです。そこで今回はbitnami公式ドキュメントに沿って、Let’s EncryptのSSL証明書を登録してセキュアなブログにしていきます。

LightSailとWordPressで簡単にブログをはじめる方法
Amazon LightSailを使ってWordPressのブログをはじめてみませんか?低コストで自分のサーバを設定してブログをはじめることができます。簡単に自分のブログを持ちたい人のためにサーバの構築からドメインの設定方法までを紹介します。

Legoを導入する

まずは証明書作成のためにクライアントツールLegoを使えるように準備します。

このクライアントを導入するとLet’s Encryptの証明書作成を良い感じでやってくれて便利です。

bitnamiユーザでサーバにSSH接続して、以下のコマンド実行していきます。X.Y.ZにはLegoのバージョンを指定してください。githubリポジトリから最新版をダウンロードして、解凍、letsencryptディレクトリ以下にクライアントが設置されます。

cd /tmp
curl -Ls 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_vX.Y.Z_linux_amd64.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

ドメイン用の証明書を作成する

では実際に証明書を作成します。

まずは稼働中のサービスを停止します。

sudo /opt/bitnami/ctlscript.sh stop

証明書を作成します。証明書を作成するコマンドは以下の通りです。作成する際には、メールアドレスとドメイン名を登録する必要があります。証明書の有効期限は90日です。有効期限が近くのここで設定したメールアドレス宛に証明書を更新の案内が通知されます。

sudo /opt/bitnami/letsencrypt/lego --tls --email="メールアドレス" --domains="ドメイン名" --path="/opt/bitnami/letsencrypt" run

コマンド実行後、TOS(Terms of service)への同意を求められます。PDFのURLが提示されるので、中身を確認して同意しましょう。

Please review the TOS at https://letsencrypt.org/documents/LE-SA-v1.2-N
ovember-15-2017.pdf
Do you accept the TOS? Y/n

正常に完了すると、以下のディレクトリに証明書たちが生成されているはずです。ドメイン名.crt、ドメイン名.issuer.crt、ドメイン名.json、ドメイン名.key というファイルが作成されていることを確認します。

/opt/bitnami/letsencrypt/certificates

ちなみにDNSの設定がうまく行っていないときは以下のエラーになります。前回設定したレコードの設定を見直しましょう。

acme: error: 400 :: urn:ietf:params:acme:error:dns :: DNS problem: NXDOMAIN looking up A for ドメイン名 – check that a DNS record exists for this domain

webサーバに証明書を登録する

証明書を作成できたのでサイトに証明書を登録します。

まずは、作成された証明書ファイルたちのパーミッションを変更します。次のコマンドを実行します(ドメイン名の箇所を適宜変更してください)。

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 -sf /opt/bitnami/letsencrypt/certificates/ドメイン名.key /opt/bitnami/apache2/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/ドメイン名.crt /opt/bitnami/apache2/conf/server.crt
sudo chown root:root /opt/bitnami/apache2/conf/server*
sudo chmod 600 /opt/bitnami/apache2/conf/server*

今回はApacheを使ったインスタンスを構築したので、Apacheのディレクトリを指定しています。各ファイルのディレクトリはサーバ構成によって異なる場合があります。別バージョンのコマンドは公式ドキュメントに記載があるので、不明な場合は確認してください。あるいは、各WEBサーバの設定ファイルで指定箇所を確認することもできます。

これで証明書の登録が完了したので、サービスを再開します。

sudo /opt/bitnami/ctlscript.sh start

https://ドメイン名 にアクセスして確認してみましょう。アドレスバー横の鍵マークが閉じていればOKです。

まとめ

無事に証明書を登録することができました。

しかし、このままだと有効期限切れになったときに元に戻ってしまいます。この記事を書いている時点で、有効期限は90日なので3ヶ月後に同じ作業をすれば良いのですが、きっと忘れるしめんどくさいので自動化の設定も今後記事にしていく予定です。

タイトルとURLをコピーしました