Disabe letsencryptが失敗し、Discourse-setupの実行中に異常なアラートが発生しました

SSL 証明書の再設定を試みており、Let’s Encrypt の無料証明書を無効にしたいと考えています。
購入済みの証明書を使用するため、Google でいくつかの操作手順を見つけました。

app.yml を直接変更し、/var/discourse/shared/standalone/ssl/ 内のキーと証明書(.cer)のファイル名が設定ファイルと一致していることを確認した後、再構築を実行しましたが、結果は失敗し、依然として Let’s Encrypt の証明書が使用されていました。

nginx に以下のエラーログが表示されました:


2021/09/25 16:37:26 [emerg] 48#48: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:27 [emerg] 78#78: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:28 [emerg] 80#80: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:29 [emerg] 82#82: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:30 [emerg] 95#95: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:31 [emerg] 104#104: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:32 [emerg] 106#106: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

ディレクトリ内のファイルは存在することを確認しました:

root@discourse-test:/var/discourse/shared/standalone/ssl# ls -al ssl.*
-rw-r--r-- 1 root root 7868 Sep 25 16:24 ssl.cer
-rw------- 1 root root 1675 Sep 25 16:24 ssl.key

また、以下の URL でいくつかの議論を見つけました:

Removing Let’s Encrypt from installation choice

./discourse-setup を実行すると、以下のアラートが表示されます:

./discourse-setup: line 471: [: 1234567890123456: binary operator expected

Let’s Encrypt を無効化する方法、または再設定の問題を解決する方法について、ご助言いただけないでしょうか?

「いいね!」 2

自分自身の証明書を使用する方法に関するトピックがいくつかあります。検索を試みることもできますが、このニッチな話題は上級者向け設定のみ: Discourse Docker 環境での SSL/HTTPS の許可です。

「いいね!」 1

こんにちは pfaffman

返信ありがとうございます。
ご提供いただいた情報に基づき、参照と実験を行いましたが、結果は失敗しました。nginx サービスがファイルを読み込めないようです。

エラーメッセージは上記の通りです:

2021/09/25 16:37:26 [emerg] 48#48: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:27 [emerg] 78#78: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:28 [emerg] 80#80: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:29 [emerg] 82#82: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:30 [emerg] 95#95: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:31 [emerg] 104#104: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

2021/09/25 16:37:32 [emerg] 106#106: cannot load certificate "/shared/ssl/ssl.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/shared/ssl/ssl.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
「いいね!」 1

自分自身の証明書を使用するように変更できました。

誤った資格情報ファイル名を使い続けていました。nginx の設定には crt ファイルが必要ですが、私は cer ファイルをインストールしてテストし続けていました。
これで SSL の問題は解決しました。

ありがとうございます。

「いいね!」 3

最初の投稿で特に目立ったのは、

cannot load certificate "/shared/ssl/ssl.crt"

というエラーメッセージと、

root@discourse-test:/var/discourse/shared/standalone/ssl# ls -al ssl.*

というコマンド実行結果です。


パスの /shared/ の後の部分の違いに注目してください。Nginx は shared/ssl/ フォルダに ssl.crt ファイルがあることを想定していましたが、実際には shared/standalone/ に見つかりました。つまり、そのファイルは Nginx が探していたパスには存在しなかったのです。

@JimPas ご返信ありがとうございます。パスが一致しないという情報を提供しました。なぜなら、一方のパスは Docker ボリュームのパスであり、もう一方は実際のサーバーのファイルパスだからです。

上級者向け設定のみ: Discourse Docker 環境での SSL/HTTPS の許可

volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared

一見すると一致していないように見えますが、実際には同じものです。
最初の問題は解決しました。
私の場合の根本的な原因は、証明書の形式に気づかなかったことです。
設定は crt 形式に設定されていますが、私は常に cer 形式のファイルを使用していたため、nginx が証明書ファイルを正常に読み取れませんでした。

「いいね!」 2

:man_facepalming:
それに気づいていませんでした。まあ、手痛い反省をさせられますね!
気づいて修正できてよかったですね。:+1:

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.