you*_*t13 7 apache certificate url-rewriting ssl-certificate lets-encrypt
我为网站(此处称为 website.com)生成的证书有问题。
我可以输入浏览器http://www.website.com并成功重定向到https://website.com我想要的(使用由 生成的证书let's encrypt)。我已经用 Apache2 的重写规则完成了这个重定向。重定向到https://website.com也工作正常,当我输入http://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而不会出现上图所示的错误?
单个证书是否足以执行所有重定向,我的意思是在我的情况下只有一个证书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
Run Code Online (Sandbox Code Playgroud)
除了包含podcast我想保持 HTTP 模式的目录的 URL 。
所以,从Ref: Apache redirect www to non-www 和 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]
Run Code Online (Sandbox Code Playgroud)
这些重写规则似乎正确吗?
不幸的是,如果我直接输入https://www.website.com,我没有重定向到https://website.com并且出现上面的警告窗口图,我不知道该怎么办。
1) Let's Encrypt 提供生成“通配符”证书的可能性吗?,我的意思是*.website.com当我们在浏览器中查看证书时的表单下。
2)此外,有谁知道如何使用 apache2 重写规则允许将https://www.website.com重定向到https://website.com的规则。
为了获得更多信息,我开始赏金。在赏金结束时,我讨论了如何从https://www.website.com重定向到https://website.com(这些 URL 在相同的 href 标签下被屏蔽为赏金,但它们是不同的)。
感谢您的回答。我认为我的问题与通配符证书无关,因为我只想从https://www.website.com重定向到https://website.com(不要考虑上面的更新 2。当然是简单的重写规则应该足够了。在我当前的操作系统(Debian 10)之前,我运行良好,我现在尝试再次使用所有配置文件。特别是,我只使用了一个由选项“ -d website.com”生成的证书(我没有使用第二个域“ www.website.com”)。
我将尝试修改这些重写规则以获得此重定向,而不必生成 www.website.com 证书文件。
您可以尝试对原始 certbot-auto 命令运行此小更新,以使您的证书包含附加www.example.com域名(我相信这就是约翰·汉利(John Hanley)在对您原始问题的评论中所说的内容)请注意,据一位消息来源称(下面的 LetsEncrypt 社区链接)如果您已经设置了 URL 重写规则,则可能必须先删除它们,然后认证过程才会生效。(如果您运行命令并收到错误,这可能就是原因)
./certbot-auto certonly --no-bootstrap --no-self-upgrade --renew-by-default -a standalone -d example.com -d www.example.com --rsa-key-size 4096
Run Code Online (Sandbox Code Playgroud)
可能有帮助的参考资料:
certbot 的命令参数参考(手册页) https://certbot.eff.org/docs/man/certbot.html?highlight=bootstrap
LetsEncrypt 社区关于添加新域的讨论 https://community.letsencrypt.org/t/add-a-domain-using-certbot-auto/33660
LetsEncrypt 用于更新现有证书的文档 https://certbot.eff.org/docs/using.html#re-creating-and-updating-existing-certificates 注意,根据手册页, --renew-by-default 意味着--expand,在这些示例中使用(--expand 只是让您不必回答是否有意更新现有证书)
我认为您的重写规则看起来大部分都很好,正如前面提到的,可能需要暂时删除它才能生成证书。在这些规则之前您可能需要“RewriteEngine On”:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{REQUEST_URI} !^/podcast [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,NE,R=301]
Run Code Online (Sandbox Code Playgroud)
关于通配符证书的问题,它们是受支持的,但只有在附加插件的帮助下才能实现。在此处查看更多信息: https://certbot.eff.org/docs/using.html? highlight=wildcard#id14
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |