AWS LightsailにおけるLet’s Encrypt(無料サーバ証明書)の更新方法

AWS Lightsailにおいて、Let’s Encryptを使ってSSL化しています。(Lightsailサーバ自体にサーバ証明書を直接配置)

関連記事

ココに「舞台裏」を書いて、それが舞台裏か?笑 というよく分からない話になりそうですが。 自分の備忘録も兼ねて、サイト構築の与太話を残しておきます。 少しマニアックなIT話になりますので、内容はご理解いただかなくとも全く問題ないです […]

初めてのLet’s Encryptの証明書更新作業でしたので、自動化(cron化等)はせず、手動で実施してみました。
それでも案の定いろいろとハマりました(笑)ので、その備忘録です。
Let’s Encryptの有効期限は90日と短いのですよね。。(無料なので大変ありがたいですが。)

実作業(結果的に以下を実施すればOK)

初期導入は、Lightsailのチュートリアルに則ってLet’s EncryptのワイルドカードSSL証明書を導入しています。

その環境下における更新作業です。

### 現状の確認(以下の例はあと7日で有効期限切れ)
sudo certbot certificates

>Certificate Name: gloria.cool
>  Domains: gloria.cool *.gloria.cool
>  Expiry Date: 2019-08-13 22:05:47+00:00 (VALID: 7 days)
>  Certificate Path: xxx
>  Private Key Path: xxx


### 証明書の更新(Domainsに記載のある複数ドメインの設定が必要)
sudo certbot certonly --manual -d gloria.cool -d *.gloria.cool

# Yesで応答
>Are you OK with your IP being logged?
>(Y)es/(N)o:

# 指示に従って、DNSサーバのTXT recordに提示された文字列を登録し、Enter
# TXT recordの反映にやや時間を要するため、速攻Enterは押さないこと
>Please deploy a DNS TXT record under the name
>_acme-challenge.gloria.cool with the following value:
>xxxxxxxx
>Before continuing, verify the record is deployed.

# Congratulations! と出ればOK
>IMPORTANT NOTES:
> - Congratulations! Your certificate and chain have been saved at:


### 更新後の状態確認
sudo certbot certificates

>Certificate Name: gloria.cool
> Domains: gloria.cool *.gloria.cool
> Expiry Date: 2019-11-03 22:21:37+00:00 (VALID: 89 days)
> Certificate Path: xxx
> Private Key Path: xxx


### apache再起動
sudo /opt/bitnami/ctlscript.sh restart apache

Chromeでサイトにアクセスし作業前後で証明書を確認しましたが、問題なさそうですね。

(作業前)

(作業後)

色々とハマったこと

以下、ただのハマりメモです。

### 証明書更新の素振り実行
### Let's Encryptは1日5回くらい発行依頼するとしばらく発行依頼できなくなる(たぶん1日くらい)ため、作業に問題ないかを素振りできる機能があります。(実際の発行処理は行わない)
### --dry-run オプションをつけて実行すればOKです
sudo certbot certonly --manual -d gloria.cool -d *.gloria.cool --dry-run


### 間違えて証明書を作成してしまった場合の削除方法
sudo certbot delete -d gloria.cool

# 何番消す?と聞かれますので、絶対に対象を間違えないように番号を記述してEnter
>Which certificate(s) would you like to delete?
>1: gloria.cool-0001
>2: gloria.cool


### ワイルドカード証明書ではなく、単独の証明書更新の場合
sudo certbot certonly --manual -d gloria.cool

# DNS TXT recordでの管理者確認ではなく、サイトにファイルを配置して確認する形態になる
# 以下だと、.well-known/acme-challenge/xxxxyz というファイルを作成し、xxxabc という文字列をファイルに仕込む。
# LightsailのWordPressの場合、
# /opt/bitnami/apps/wordpress/htdocs/.well-known/acme-challenge/xxxxyz
# がデフォルトの配置先となる。(フォルダがない場合は作成すればOK)
# 最初、urn:ietf:params:acme:error:unauthorized というエラーにひっかかり、ググると「Basic認証にひっかかっているからだ」との事例が多くそちらを確認していたのですが、完全な的外れでした。(単純に、メッセージとして出てきた英語を読めよ、というオチ。。)
>Create a file containing just this data:
>xxxabc
>And make it available on your web server at this URL:
>https://gloria.cool/.well-known/acme-challenge/xxxxyz

更新期日がある対応でしたので、ハマった時は少しアセりました(^^;;;

関連リンク

関連記事

ココに「舞台裏」を書いて、それが舞台裏か?笑 というよく分からない話になりそうですが。 自分の備忘録も兼ねて、サイト構築の与太話を残しておきます。 少しマニアックなIT話になりますので、内容はご理解いただかなくとも全く問題ないです […]

記事情報や役立ち情報を発信します!
Click to Hide Advanced Floating Content
Click to Hide Advanced Floating Content