我的 SSL 对 www.domain.com 无效,但对 domain.com 有效。
我该如何使其与 www 安全?我拥有自托管 discourse 时获得的免费 SSL。
我的 SSL 对 www.domain.com 无效,但对 domain.com 有效。
我该如何使其与 www 安全?我拥有自托管 discourse 时获得的免费 SSL。
你不能。\n\nLet’s Encrypt 也是免费的,所以 ![]()
是的,我知道它是免费的,但有什么方法可以加密 www?
因为我将其指向 domain.com,但访问时会弹出“此网站不安全”的提示。
因为它仅为 apex 创建,或者您在尝试终止它的任何地方都指错了。\n\n\n[quote="good, post:1, topic:346525, username:good_guy"]\n我获得了自托管 discourse 时免费获得的 SSL\n[/quote]\n\nDiscourse 安装时会创建 SSL。并且它是通过 Let’s Encrypt。所以也许您应该问问现在提供给您的公司。\n\n我不完全明白为什么要费心。
因为当您访问 www.mysite.com 时,它会弹出“此网站不安全,您要继续吗”之类的消息,然后重定向到 SSL 版本 (https)。我会向 Let’s Encrypt 咨询解决方案。
您还需要为 www 创建它。
如果手动创建,则必须使用类似 certbot certonly --nginx -d domain.com -d www.domain.com 的命令。基本上每个子域都需要自己的证书。
我不知道现在情况如何,但通配符证书(适用于根域和所有子域)在使用 Let’s Encrypt 创建时效果不太好。
但再说一次。您不必担心这一点,因为 Discourse 会为您处理——除非您的 DNS 设置错误或由于其他原因导致您的论坛无法访问。
抱歉,我不太明白,DNS 似乎没问题,只是一个 URL 重定向。
www → https://domain.com
这部分显示
www.domain.com 不支持安全连接
您看到此警告是因为此网站不支持 HTTPS
但是使用 domain.com 时一切正常。
我应该尝试 certbot certonly --nginx -d domain.com -d www.domain.com 吗?
我不知道你应该尝试什么,我甚至不知道你在尝试做什么,如何以及在哪里。
我只想说:
有一个关于这个的帖子:
谢谢。
after_ssl:
# tell letsencrypt what additional certs to get
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d site.com -d www.mysite.com --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d site.com -d www.mysite.com --fullchainpath"
所以这应该会让 www 指向 mysite.com?还是反过来?
不。它为您提供两个证书。一个用于 apex,一个用于 www。
如果您的主机名是 site.com,那么您就做对了。看起来确实是这样。
通常建议您的网站放在 www.site.com,并将根域重定向到 www。我会做的是将您的主机名更改为 www.site.com,然后反过来操作。
我认为它提供了一个对两者都有效的证书。
您好,我正在顶一下这个帖子,因为我以为昨天已经修复了,但现在访问 www.mysite.com 时仍然出现非 SSL 重定向。
根域名有 SSL,但 www 没有。
尽管我在 app.yml 的 hooks 中应用了以下内容:
after_ssl:
# 告诉 letsencrypt 需要获取哪些额外的证书
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d mysite.com -d www.mysite.com --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d mysite.com -d www.mysite.com --fullchainpath"
您是否遵循了 Set up Let’s Encrypt with multiple domains / redirects 中的说明?
如果您在 OP 的模板中插入 www.mysite.com,它会生成此内容:
after_ssl:
# tell letsencrypt what additional certs to get
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d www.mysite.com --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d www.mysite.com --fullchainpath"
global: true
所以你是错的。
原来那不是手动输入的。
after_ssl:
# tell letsencrypt what additional certs to get
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d =domain2= --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d =domain2= --fullchainpath"
global: true
那么我需要这样做,并将domain2替换为mysite.com,然后重新构建应用程序吗?
嘿,刚做了这个,结果还是一样。我用我的域名做了同样的操作。
没有空格,格式正确。
after_ssl:
# 告诉 letsencrypt 需要获取哪些附加证书
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--keylength/
to: "-d =mysite.com= --keylength"
- replace:
filename: "/etc/runit/1.d/letsencrypt"
from: /--fullchainpath/
to: "-d =mysite.com= --fullchainpath"
global: true
由于您尚未解决此问题,因此我取消了“已解决”框的选中状态。
如果您使用另一个诗节进行了大量重建,则可能会受到速率限制。
模板可能已再次更改,并且此方法不再有效,但我对此表示怀疑。
速率限制的解决方案是等待一周或添加第三个子域。
您可以进入容器并运行命令来请求 URL 并查看错误是什么,但我记不清了。如果您查看
docker logs app
可能会看到错误。
啊,我找到了!
Cannot issue for \"=mysite.com=\": Domain name contains an invalid character"
所以去掉等号,因为它们是用于变量的?
您是否按照我建议的那样使用了另一个页面上的表单,并将您的主机名填入了空白处?