我已经通过AWS在Ubuntu 16.04上使用Nginx建立了一个网络服务器。对于已注册的域和子域,所有HTTP流量都会重定向到HTTPS。当有人输入“http://IP_Address”时,会将其退回到默认的HTTPS页面。
除了一件事之外,它都很漂亮......如果用户键入“https://IP_Address”,他们会得到一个页面说“IP_Adderess的所有者已经不正确地配置了他们的网站。为了防止您的信息被盗。 ..“
我尝试使用“server_name _;”从服务器块重定向并且消息是证书是针对错误的站点。所以我为重定向服务器块创建了一个自签名证书。但当然它现在提供了一个略有不同的“不信任”消息,并继续提供帮助用户阻止我的网站。
我还试过告诉它只返回404,但是在它到达那一点之前,似乎检查网站是否有效。有没有办法简单地导致“https:// IP_Address”返回404错误或只是不响应我不想提供的URL?
我的配置(简洁编辑)是:
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;
}
提前致谢。