小编NiK*_*iKo的帖子

如何告诉 nginx 只为一个 vhost 管理的域提供 https?

我有一个运行 ubuntu 和 nginx 0.8.4 的 ec2 实例,vhosts 使用 http 服务几个不同的域,但一个使用 SSL/https。

安全域配置:

server {
    listen 443 ssl;
    server_name "securedomain.tld";

    ssl_certificate     /etc/nginx/certs/securedomain.tld.crt;
    ssl_certificate_key /etc/nginx/certs/securedomain.tld.key;

    if ($host != $server_name) {
        return 444; # this won't work because HTTPS communication has 
                    # been already started, warning message is displayed
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

不安全的域配置:

server {
    listen 80; 
    server_name "unsecuredomain.tld";

    // ...
}
Run Code Online (Sandbox Code Playgroud)

现在,使用 https 服务的域正在赶上所有托管域的所有https 流量……这意味着https://unsecuredomain.tld/将显示警告并实际提供来自securedomain.tld:(

问题是,有没有办法阻止 nginx 为所有使用 https 提供服务的不安全域提供服务?例如,通过指定您只想接受给定请求主机的 https 连接……

提示:一个 ec2 …

ssl nginx

5
推荐指数
1
解决办法
4082
查看次数

标签 统计

nginx ×1

ssl ×1