use*_*341 10 nginx redirect ssl-certificate
我正在尝试将我网站的域名从https://www.myolddomain.se/更改为https://www.mynewdomain.se/
问题是,对于我的旧域,我在所有页面上强制使用 SSL,因此 google 和其他站点上的所有链接都与 https 链接。当我尝试从 https 链接访问旧域时,出现证书错误。所以我的问题是:如何将所有与 https 链接的页面重定向到 nginx 中的另一个 https 安全域,而不会出现此错误?
我做了一些研究,发现了这个重定向网页的解决方案,它现在插入到我的配置文件中。虽然我仍然收到证书错误!
server {
server_name .myolddomain.se;
return 301 https://www.mynewdomain.se$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
但我就是无法让它工作!如果有人能提出答案,我将不胜感激
Xav*_*cas 11
该解决方案取决于客户能力、您的预算和架构特性。
1. 如果两个域都托管在同一个 IP 地址上并且您不能拥有另一个域:
如果客户端支持 TLS SNI 扩展:
server {
listen X.X.X.X:443 ssl;
ssl_certificate /path/to/myolddomain.cert;
ssl_certificate_key /path/to/myolddomain.key;
server_name .myolddomain.se;
return 301 https://www.mynewdomain.se$request_uri;
}
server {
listen X.X.X.X:443 ssl;
ssl_certificate /path/to/mynewdomain.cert;
ssl_certificate_key /path/to/mynewdomain.key;
server_name .mynewdomain.se;
[ ... ] # Your stuff
}
Run Code Online (Sandbox Code Playgroud)
如果它不能但理解 x509 扩展名,SubjectAltName并且您可以负担得起生成新证书,那么请为两个域请求一个唯一证书。配置应如下所示:
server {
listen X.X.X.X:443 ssl default_server;
ssl_certificate /path/to/domain.cert;
ssl_certificate_key /path/to/domain.key;
server_name _;
}
server {
listen X.X.X.X:443;
server_name .myolddomain.se;
return 301 https://www.mynewdomain.se$request_uri;
}
server {
listen X.X.X.X:443;
server_name .mynewdomain.se;
[ ... ] # Your stuff
}
Run Code Online (Sandbox Code Playgroud)
2. 如果每个域都在不同的 IP 地址上,或者如果它在同一个 IP 地址上,但您可以拥有另一个
最通用的解决方案,监听两个不同的 IP(通常一个额外的公共 IP 是“简单”的一个选项,可以在您的托管服务提供商处购买):
server {
listen X.X.X.X:443 ssl;
ssl_certificate /path/to/myolddomain.cert;
ssl_certificate_key /path/to/myolddomain.key;
server_name .myolddomain.se;
return 301 https://www.mynewdomain.se$request_uri;
}
server {
listen Y.Y.Y.Y:443 ssl;
ssl_certificate /path/to/mynewdomain.cert;
ssl_certificate_key /path/to/mynewdomain.key;
server_name .mynewdomain.se;
[ ... ] # Your stuff
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11722 次 |
| 最近记录: |