我有一个证书example.com,并www.example.com与以下配置:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试重定向到www.example.com,并且在我访问https://example.com. 我成功重定向。但我不明白它为什么有效。301 重定向应该通过 SSL 发生,但我没有指定证书。怎么可能呢?
另外,推荐的方法是什么?只是在上面的块中添加证书吗?
是的,您需要 https:// 站点的证书才能重定向到https://www站点。通常,最简单的方法是获取涵盖 www 和非 www 的证书,并在两种服务器配置中使用该证书。Let's Encrypt 没有问题。
为什么你的配置有效?
我不知道为什么你上面的配置有效,没有指定证书。据我所知它不应该。
我将您的配置放入我在 AWS 上的 Nginx 实例中,稍微调整如下
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example2.com;
return 301 https://www.example2.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.example2.com;
root /var/www/folder;
}
Run Code Online (Sandbox Code Playgroud)
我将以下内容添加到我的 /etc/hosts
11.0.1.10 example2.com www.example2.com
Run Code Online (Sandbox Code Playgroud)
当我做了一个 wget 这就是我得到的
wget https://www.example2.com
--2017-07-29 08:07:17-- https://www.example2.com/
Resolving www.example2.com (www.example2.com)... 11.0.1.10
Connecting to www.example2.com (www.example2.com)|11.0.1.10|:443... connected.
Unable to establish SSL connection.
Run Code Online (Sandbox Code Playgroud)
可以看到可以连接到服务器,但是不能建立SSL连接。当我使用 curl 时,我得到了不同的响应,但它不起作用。
curl https://www.example2.com
curl: (35) Encountered end of file
Run Code Online (Sandbox Code Playgroud)
基于此,我认为您告诉我们的内容中缺少某些内容。
这应该是这样的
这显示了 Nginx 应该如何配置。
# Main website, https www
server {
server_name www.example.com;
listen 443 ssl http2; # http2 is optional
ssl_certificate /path/to/fullchain;
ssl_certificate_key /path/to/privkey;
# locations etc
}
# forward https non-www to www
server {
server_name example.com;
listen 443 ssl;
ssl_certificate /path/to/fullchain;
ssl_certificate_key /path/to/privkey;
return 301 https://www.example.com$request_uri;
}
# Forward http to https
server {
listen 80;
server_name example.com www.example.com;
access_log /var/log/nginx/access.log main buffer=128k flush=1m if=$log_ua;
return 301 https://example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8224 次 |
| 最近记录: |