任何随机子域名重定向到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/airsc.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/

应该看到 airsc.cc.cerairsc.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