Discourse のインストール中に Bootstrap エラー: ENOENT - /etc/runit/1.d/letsencrypt

アップデートです。

app.yml の一番下にある run セクションにこれを追加すると、DISCOURSE_HOSTNAMEwww.DISCOURSE_HOSTNAME の証明書をリクエストする /usr/local/bin/letsencrypt の問題が解決します。

- exec: sed -i "s|-d \${DISCOURSE_HOSTNAME}|-d \${DISCOURSE_HOSTNAME} -d www.\${DISCOURSE_HOSTNAME}|g" /usr/local/bin/letsencrypt

これは(なぜか)以前は十分でしたが、現在、http://www.HOSTNAME/.well-known… のリクエストが来ると、本来送信されるべきチャレンジを送信するのではなく、非wwwサイトにリダイレクトされます。以下のようなことを試しました。

server {
  listen 80;
  listen [::]:80;
  server_name nzarchitecture.net.nz www.nzarchitecture.net.nz;

  # ACMEチャレンジ(Let's Encrypt)を処理
  location ^~ /.well-known/acme-challenge/ {
    root /var/www/discourse/public;  # Let's EncryptのWebルートと一致していることを確認してください
    allow all;
  }

  # その他すべてをHTTPSにリダイレクト
  location / {
    return 301 https://$host$request_uri;
  }
}

しかし、うまくいきませんでした。

チームの誰かが聞いていたら、letsencryptフックがあれば、これを after_letsencrypt で呼び出すことができると良いのですが。これらの変更を after_ssl で行うと以前は機能していましたが、現在はSSLの後、letsencryptの前に実行されるようです。

「いいね!」 3