Discourse托管在WWW子域名时应设置哪些正确的DNS记录?

你好

我已在 Digital Ocean 的 Droplet 上使用一键安装脚本部署了 Discourse。我将主机名设置为 www.mydomain.com,并选择通过 Let’s Encrypt 签发 SSL 证书。

我的域名托管在 Namecheap,并已设置以下 DNS 记录:

A 记录    WWW   my_droplet_ip_address
A 记录    @         my_droplet_ip_address
CNAME     @         www.mydomain.com

我认为所有设置都是正确的,在我的桌面电脑和笔记本电脑上,我可以通过以下每个 URL 成功访问网站(所有 URL 都会重定向到 https://www.mydomain.com):

https://www.mydomain.com
https://mydomain.com
http://www.mydomain.com
http://mydomain.com

然而,在我的 Android 手机上,使用以下 URL 访问网站时会出现 NET::ERR_CERT_COMMON_NAME_INVALID 警告:

http://mydomain.com
https://mydomain.com

我认为我的设备可能缓存了旧的证书,因为我在本论坛上读到使用裸域名(naked domain)并不推荐,因此我将 Discourse 从裸域名迁移到了 WWW 子域名。不过,清除缓存/数据似乎并未解决问题,因此我想请教一下,我当前的 DNS 设置是否有明显错误?

提前非常感谢。

Discourse 仅为 www 地址生成了证书。如果您通过 HTTP 访问根域名,会按预期被重定向;但如果您通过 HTTPS 访问,则会收到错误。

有一些关于如何为两个域名生成证书的讨论。您可以查看 forcewww.com,那样会更简单。

感谢您的回复。我猜您指的是 这个主题

我按照该指南操作时遇到的问题是,我的 Digital Ocean 实例上似乎没有 /etc/nginx 目录。我需要手动安装 Nginx 吗?

或者,如果我在裸域名(不带 www)上重新安装 Discourse,能否解决这个问题?还是说,如果用户通过 https://www. 访问,我仍会面临同样的问题?

如果这些问题太基础或显而易见,敬请见谅,这个计算领域并非我所熟悉的。