Web services 在Nginx中防止通过IP访问网站的HTTPS

Web services 在Nginx中防止通过IP访问网站的HTTPS,web-services,nginx,web,https,webserver,Web Services,Nginx,Web,Https,Webserver,我已经通过AWS在Ubuntu16.04上使用Nginx完成了Web服务器的设置。注册域和子域的所有HTTP通信都重定向到HTTPS。当有人键入“”时,他们会跳转到默认的HTTPS页面 除了一件事,一切都很顺利。。。如果用户键入“”,他们会看到一个页面,上面写着“IP_address的所有者配置了不正确的网站。为了保护您的信息不被窃取…” 我尝试从带有“server\u name”的服务器块重定向,结果显示证书指向错误的站点。所以我只为重定向服务器块创建了一个自签名证书。当然,它现在给出了一个稍

我已经通过AWS在Ubuntu16.04上使用Nginx完成了Web服务器的设置。注册域和子域的所有HTTP通信都重定向到HTTPS。当有人键入“”时,他们会跳转到默认的HTTPS页面

除了一件事,一切都很顺利。。。如果用户键入“”,他们会看到一个页面,上面写着“IP_address的所有者配置了不正确的网站。为了保护您的信息不被窃取…”

我尝试从带有“server\u name”的服务器块重定向,结果显示证书指向错误的站点。所以我只为重定向服务器块创建了一个自签名证书。当然,它现在给出了一个稍微不同的“不可信”信息,并继续提供帮助用户阻止我的网站

我也试着告诉它只返回404,但似乎在它到达那个点之前,就会检查站点是否有效。有没有办法简单地让“https://IP\u Address”返回404错误,或者干脆不响应我不想提供服务的URL

我的配置(为简洁起见进行了编辑)是:

服务器{
监听80个默认_服务器;
侦听[:]:80默认_服务器;
服务器名称;
返回301https://example.org$request_uri;
}
服务器{
监听443sslhttp2;
听[:]:443sslhttp2;
root/var/www/example.org/html;
index.html index.php;
服务器名称example.org www.example.org;
地点/{
try_files$uri$uri/=404;
}
错误\u第500页502 503 504/50x.html;
location=/50x.html{
root/var/www/nginx/html;
}
服务器{
监听443默认_服务器;
侦听[:]:443默认_服务器;
服务器名称;
ssl_证书;
ssl_证书_密钥;
返回301https://example.org$request_uri;
}
服务器{
监听443默认_服务器;
侦听[:]:443默认_服务器;
服务器名称;
ssl\U证书/etc/nginx/ssl/nginx-selfsigned.crt;
ssl\u证书\u密钥/etc/nginx/ssl/nginx-selfsigned.key;
返回301https://visionsforlearning.org$request_uri;
}

提前感谢。

经过进一步的实验,我相信答案是将Nginx配置为不响应无效域的初始握手请求。一旦确认握手尝试,任何不成功的操作都会被现代浏览器解释为服务器配置问题,具有潜在的恶意I然后,我不确定Nginx是否支持的技巧是在端口443上侦听来自有效域和子域的联系人,同时不侦听/忽略无效域。使用“全部拒绝”没有解决这一问题,因为SSL握手首先发生。经过进一步的实验,我相信答案是将Nginx配置为不响应无效域的初始握手请求。一旦确认握手尝试,任何不成功的操作都会被现代浏览器解释为服务器冲突fig存在潜在恶意问题。然后,我不确定Nginx是否支持的技巧是在端口443上侦听来自有效域和子域的联系,同时不侦听/忽略无效域。使用“全部拒绝”无法解决此问题,因为SSL握手首先发生。
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        return 301 https://example.org$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    root /var/www/example.org/html;
    index index.html index.php;
    server_name example.org www.example.org;

    location / {
                try_files $uri $uri/ =404;
    }

    <SSL stuff, turning off gzip, transport headers, etc.>

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/www/nginx/html;
    }
    server {
    listen 443 default_server;
    listen [::]:443 default_server;
    server_name _;

    ssl_certificate     <path to cert>;
    ssl_certificate_key <path to key>;

    return 301 https://example.org$request_uri;
}

server {
    listen 443 default_server;
    listen [::]:443 default_server;
    server_name _;

    ssl_certificate     /etc/nginx/ssl/nginx-selfsigned.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx-selfsigned.key;

    return 301 https://visionsforlearning.org$request_uri;
}