Let's Encrypt:空の *.cer ファイル

新しい 標準的な 30 分インストール に接続できません。AWS Lightsail、2GB メモリ、:443 を開いた Ubuntu 18.04 LTS x64 環境です。問題は、Let’s Encrypt の *.cer ファイルが空であることです。なぜでしょうか?

nginx ログ

root:/var/log/nginx# ls -ltrh
-rw-r–r-- 1 www-data www-data 0 Dec 6 05:45 error.letsencrypt.log
-rw-r–r-- 1 www-data www-data 0 Dec 6 05:45 access.letsencrypt.log
-rw-r–r-- 1 www-data www-data 1.8M Dec 6 08:19 error.log

tail error.log
PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

動作しないサイトの証明書ファイル。サイズが 0 のファイルに注意してください。

ls /shared/ssl/ -ltrh
-rw------- 1 root root 3.2K Dec 6 08:16 test.example.com.key
-rw-r–r-- 1 root root 0 Dec 6 08:16 test.example.com.cer
-rw------- 1 root root 302 Dec 6 08:16 test.example.com_ecc.key
-rw-r–r-- 1 root root 0 Dec 6 08:16 test.example.com_ecc.cer

動作するサイトの証明書ファイルと比較

ls /shared/ssl/ -ltrh
-rw-r–r-- 1 root root 3.2K Nov 25 07:41 forum.working.com.key
-rw-r–r-- 1 root root 3.9K Nov 25 07:41 forum.working.com.cer
-rw------- 1 root root 302 Nov 29 00:11 forum.working.com_ecc.key
-rw-r–r-- 1 root root 3.3K Nov 29 00:11 forum.working.com_ecc.cer

app.yml の LETSENCRYPT_ACCOUNT_EMAIL を変更して再構築し、再起動を試みました。

昨日も同じ現象が発生しました。問題の原因は、ドメイン名がサーバーに解決されなかったこと(間違ったホスト名を使用していたため)だと思います。ただし、discourse-setup はそれを検出するテストを実行します。

DNSの問題を修正した後、/var/discourse/shared/standalone から ssl と let’s encrypt ディレクトリを削除してください。

@pfaffman さん、ありがとうございます。これで解決しました。私の場合、最初に discourse-setup を実行したときは DNS がまだ設定されていなかったため、テストが失敗しました。その時点で DNS を修正し、「n」を押して再試行しました。すると今回はテストに合格し、ビルドは続行されましたが、証明書ファイルのサイズがゼロのままでした。

これはバグではないかと考えており、時間ができたら再現を試みたいと思います。おそらく、セットアップでは証明書ファイルの存在のみをチェックしているのでしょうが、有効かどうか、あるいは少なくともサイズがゼロでないかを確認すべきではないでしょうか。