任意のサブドメインを www にリダイレクト

ランダムなサブドメインを www へリダイレクト

  1. アリクラウドの AccessKey を取得します(アリクラウドを例に挙げていますが、各自で Key を申請してください)。
AccessKey ID: LTAI5tQCfDcVcghn5
AccessKey Secret: J8ZayXB44MIWa1Mfnj
  1. acme.sh をインストールします。
cd ~
curl https://get.acme.sh | sh
  1. 既定の CA を Let’s Encrypt に切り替え、証明書を取り直します。
# 既定の CA を Let's Encrypt に切り替え
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
# ワイルドカード証明書を申請(discourse.cc はあなたのドメインに置き換えてください)
~/.acme.sh/acme.sh --issue --dns dns_ali -d discourse.cc -d '*.discourse.cc'
  1. 証明書を Discourse の SSL ディレクトリにインストールします。
    証明書を Discourse の SSL ディレクトリにコピーします。

root 権限で実行してください(discourse.cc はあなたのドメインに置き換えてください)。

cp /home/admin/.acme.sh/discourse.cc_ecc/discourse.cc.key /var/discourse/shared/standalone/ssl/discourse.cc.key
cp /home/admin/.acme.sh/discourse.cc_ecc/fullchain.cer /var/discourse/shared/standalone/ssl/discourse.cc.cer
chmod 644 /var/discourse/shared/standalone/ssl/discourse.cc.*

ファイルの存在を確認します。

ls -l /var/discourse/shared/standalone/ssl/

discourse.cc.cerdiscourse.cc.key が表示されるはずです。

  1. Discourse の設定を変更し、再構築します。
DISCOURSE_HOSTNAME: 'www.discourse.cc'
DISCOURSE_HOSTNAME_ALIASES: 'discourse.cc'
DISCOURSE_DISABLE_LETSENCRYPT: 'true'
  1. Nginx のリダイレクトルールを設定します(まだ設定していない場合)。
server {
    listen 80;
    server_name ~^(?!www\.)(.+)\.discourse\.cc$;
    return 301 https://www.discourse.cc$request_uri;
}
server {
    listen 443 ssl;
    server_name ~^(?!www\.)(.+)\.discourse\.cc$;
    ssl_certificate ...;
    ssl_certificate_key ...;
    return 301 https://www.discourse.cc$request_uri;
}
  1. コンテナを再構築します。
cd /var/discourse
sudo ./launcher rebuild app