임의의 서브도메인을 www로 리디렉션

무작위 서브도메인을 www로 리다이렉트

  1. Aliyun AccessKey를 가져옵니다. (Aliyun을 예시로 사용하며, 직접 키를 신청해야 합니다.)
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

안녕하세요, 이건 @顶级域名重定向到www? 와 같은 건이 아닌가요?

차이가 있습니다. 최상위 도메인은 discourse.com이 www.discourse.com으로만 리디렉션되지만, 랜덤 서브도메인은 랜덤 접두사.discourse.com 형식으로, 예를 들어 xxxh.discourse.com, shhiaj.discourse.com 등이 모두 www.discourse.com으로 리디렉션됩니다.

1개의 좋아요