MihaVuk
(Miha Vuk)
2022 年 4 月 11 日午後 3:45
1
セルフホスト型Docker環境をセットアップし、チュートリアルに従ってLet’s Encryptを使用してHTTPSを有効にしました。
これは、既存の Discourse インストールに対して Let’s Encrypt を使用して HTTPS を有効化するためのガイドです。HTTPS が無効な状態で事前にインストール済みのことを前提としています。
必要なユーザー権限レベル:システム管理者
このガイドは、HTTPS が有効化されていない既存のインストールのみを対象としています。公式セットアップガイド に従って設定を行うと、デフォルトで HTTPS が自動的に有効化されます。
Discourse に HTTPS を無料で追加したいとお考えですか?それは、Let’s Encrypt のご厚意によるものです。
サイト上の他のすべてのリソースは HTTPS に対応していますか?
開始する前に、HTTPS が正常に機能するためには、ページ上のすべてのリソースが HTTPS に対応している必要があることを忘れないでください。CDN、ソーシャルログイン、ロゴファイル、サードパーティ製の JavaScript、画像…
以下のステップで常に失敗します。HTTPSなしでのセットアップは正常に機能し、フォーラムはHTTPで公開されています。
root@discoursetest3-app:/shared/letsencrypt# cat acme.sh.log
…
[Mon 11 Apr 2022 02:56:35 PM UTC] discourse-test3.docentric.com :Verify error:Fetching http://discourse-test3.docentric.com/.well-known/acme-challenge/iEFjgyseuVL1IzIrTjmfhwv0HqV7EgUmQUVhy1nmnCE: Timeout after connect (your server may be slow or overloaded)
ACMEチャレンジにアクセスできないようです。
pfaffman
(Jay Pfaffman)
2022 年 4 月 11 日午後 4:04
2
そのガイドの最初の文を読みましたか?標準的なインストールを行う場合は、そのガイドに従う必要はないと書かれています。
これは最近の標準的なインストールですか? discourse-setup を実行しましたか?
ポート80(そしておそらくポート443も)が着信接続に対してブロックされている可能性があります。
不思議なことに、最初のものは機能しますが、2番目のものは機能しません。
○ → curl http://discourse-test3.docentric.com/srv/status
ok
○ → timeout -v 5s curl http://discourse-test3.docentric.com/.well-known/acme-challenge/iEFjgyseuVL1IzIrTjmfhwv0HqV7EgUmQUVhy1nmnCE
timeout: sending signal TERM to command ‘curl’
標準的なセットアップであれば、何が原因なのかわかりません。
MihaVuk
(Miha Vuk)
2022 年 4 月 12 日午前 8:37
4
HTTPSがない古いテスト環境で、HTTPSを有効にしたいと考えています。
app.ymlを直接編集したり、discourse-setupを実行したりしましたが、どちらの場合も同じエラーが発生します。
Discourseを削除(コンテナとファイル)して最初からインストールし直そうとしましたが、結果は同じでした。
ポート80が利用できないように見えますが、app.ymlの以下の2行をコメントアウトすると、フォーラムはHTTPで問題なく動作します。
“templates/web.ssl.template.yml”
“templates/web.letsencrypt.ssl.template.yml”
ディスク上のどこに、http://discourse-test3.docentric.com/.well-known/acme-challenge/iEFjgyseuVL1IzIrTjmfhwv0HqV7EgUmQUVhy1nmnCEのような静的ファイルがありますか?
MihaVuk
(Miha Vuk)
2022 年 4 月 13 日午後 12:18
5
ACMEプロトコルが会社のファイアウォールでブロックされていたことが判明しました。これで動作します