【发布时间】:2020-06-01 18:30:26
【问题描述】:
我为网站(此处称为 website.com)生成的证书存在问题。
我可以在浏览器中输入http://www.website.com 并成功重定向到我想要的https://website.com(使用let's encrypt 生成的证书)。我已经用 Apache2 重写规则完成了这个重定向。当我键入 http://website.com 时,重定向到 https://website.com 也可以正常工作。
现在,当我直接在浏览器中输入 https://wwww.website.com 时,我遇到了一个问题:我收到以下错误:
为了生成让我们加密的证书,我执行了以下命令:
./certbot-auto certonly --no-bootstrap --no-self-upgrade --renew-by-default -a standalone -d website.com --rsa-key-size 4096
我想生成一个适用于website.com 和www.website.com 的证书:上面带有cerbot-auto 的命令是否正确?
似乎在我从 Debian 7 迁移到 Debian 10 之前,我在浏览器的证书信息窗口中有一个 *.website.com 名称,但我不确定。
如何输入https://www.website.com并正确重定向到https://website.com而不出现上图所示的错误?
更新 1
单个证书是否足以执行所有重定向,我的意思是在我的情况下只有一个证书 website.com ?我以前的操作系统就是这种情况,我认为我只有一个 uniq 证书(用于website.com)。
我想要以下重定向:
http://website.com -----> https://website.com
http://www.website.com -----> https://website.com
https://www.website.com -----> https://website.com
除了包含目录podcast 的 URL,我希望在该目录中保持 HTTP 模式。
所以,从Ref: Apache redirect www to non-www and HTTP to HTTPS,我做到了:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{REQUEST_URI} !^/podcast [NC]
RewriteRule ^ https://website.com%{REQUEST_URI} [L,NE,R=301]
这些重写规则似乎正确吗?
很遗憾,如果我直接输入https://www.website.com,我并没有重定向到https://website.com,并且出现上图的Warning窗口,我不知道该怎么办。
更新 2
1) Let's Encrypt 提供生成“通配符”证书的可能性吗?我的意思是,当我们在浏览器中查看证书时,格式为*.website.com。
2) 此外,有谁知道如何使用 apache2 重写规则,允许将 https://www.website.com 重定向到 https://website.com。
为了获得更多信息,我开始赏金了。 在赏金结束时,我会讨论如何进行从https://www.website.com 到https://website.com 的重定向(这些 URL 在相同的 href 标签下被屏蔽为赏金,但它们是不同的)。
更新 3
感谢您的回答。我认为我的问题与通配符证书无关,因为我只想从 https://www.website.com 重定向到 https://website.com(不要考虑上面的 UPDATE 2。当然应该是一个简单的重写规则足够了。在我当前的操作系统(Debian 10)之前,我运行良好的所有配置文件,我现在再次尝试使用。特别是,我只使用了一个使用选项“-d website.com”生成的证书(我没有使用第二个域“www.website.com”)。
我将尝试修改这些重写规则以获得此重定向,而不必生成 www.website.com 证书文件。
【问题讨论】:
-
运行
certbot-auto时添加另一个选项-d www.website.com
标签: apache url-rewriting certificate ssl-certificate lets-encrypt