全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1753|回复: 8

[疑问] 求助:禁止用ip通过https指向非nginx认证过的主机

[复制链接]
发表于 2016-8-7 13:13:11 | 显示全部楼层 |阅读模式
本帖最后由 PPS 于 2016-8-7 23:27 编辑

求助:禁止用ip通过https指向非nginx认证过的主机

######IP:12.34.56.78只能通过域名访问,禁止用ip通过http访问#######
                server {

                                                listen       12.34.56.78:80 default_server;
                        server_name     "";                                                       
                                                access_log off;
                                                return  444;
                }
                               
                server {
                                                        listen       12.34.56.78:80;
                                                        listen       12.34.56.78:443 ssl http2;
                                                        server_name     av.baidu.com;
                                                        index index.html index.php index.htm;
                                                        root  /baidu/av;
                                                       
                                                        ssl                         on;
                                                        ssl_certificate                      ssl/av.baidu.com/fullchain.pem;
                                                        ssl_certificate_key                  ssl/av.baidu.com/privkey.pem;

                }
######IP:12.34.56.78只能通过域名访问,禁止用ip通过http访问#######

http协议禁止我能搞定,
但是禁止IP通过https协议我就搞不定了。

假如某mjj通过他的https://av.mjj.com 域名 指向我的ip 12.34.56.78,他的 https://av.mjj.com可以访问(虽然提示ssl证书有问题,但是可以访问),某mjj就可以说 https://av.mjj.com 这大人站是他的,但实际上内容都是https://av.baidu.com的。
有什么办法阻止mjj的https域名指向?
不通过我nginx配置里的域名不给用,直接return  444;

各位大侠都来帮帮忙


###通过各个楼层的帮助但是不知道还有什么漏洞缺陷,请各位继续指正。###

###为了https更安全,添加        HSTS                        ####


                server {
                                                        listen       12.34.56.78:80;
                                                        listen       12.34.56.78:443 ssl default_server;
                                                        server_name     av.baidu.com;

                                                        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

                                                        index index.html index.php index.htm;
                                                        root  /baidu/av;

                                                        if ($ssl_protocol = "") { return 301 https://$server_name$request_uri; }
                                                        if ($host != 'av.baidu.com' ) { return 444; }
                                                       
                                                        ssl                         on;
                                                        ssl_certificate                      ssl/av.baidu.com/fullchain.pem;
                                                        ssl_certificate_key          ssl/av.baidu.com/privkey.pem;

                }

###通过各个楼层的帮助,目前效果是基本实现了,但是不知道还有什么漏洞缺陷,请各位继续指正。###


########################################
                server {
                                        listen       12.34.56.78:80;
                                        listen       12.34.56.78:443 ssl default_server;
                                        server_name     av.baidu.com;

                                        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

                                        index index.html index.php index.htm;
                                        root  /baidu/av;

                                        if ($ssl_protocol = "") { return 301 https://$server_name$request_uri; }
                                        if ($host != '$server_name' ) { return 301 https://$server_name$request_uri; }
                                                       
                                        ssl                         on;
                                        ssl_certificate                      ssl/av.baidu.com/fullchain.pem;
                                        ssl_certificate_key          ssl/av.baidu.com/privkey.pem;

                }
####################################
改成这样。
这样就算 mjj的网址https://av.mjj.com ip指向你的vps,也会强行转跳成你的网址(在浏览器地址栏显示你的网址)https://av.baidu.com
发表于 2016-8-7 13:28:13 来自手机 | 显示全部楼层
直接网站加个判断不行?域名非https://av.baidu.com跳转gov.cn
 楼主| 发表于 2016-8-7 13:22:41 | 显示全部楼层

求详细解说
发表于 2016-8-7 13:29:33 | 显示全部楼层

做多个https站点,其中一个加default_server
 楼主| 发表于 2016-8-7 13:35:08 | 显示全部楼层
柳逸寒 发表于 2016-8-7 13:28
直接网站加个判断不行?域名非https://av.baidu.com跳转gov.cn

网站用https,先是ssl握手建立加密连接,此时并不知道时要连接哪个主机名的。不像http,一开始就直接连接主机名了
 楼主| 发表于 2016-8-7 13:38:38 | 显示全部楼层
SKIDROW 发表于 2016-8-7 13:29
做多个https站点,其中一个加default_server

是在这里吗 ?listen       12.34.56.78:443 default_server ssl http2;
发表于 2016-8-7 14:01:37 | 显示全部楼层
PPS 发表于 2016-8-7 13:38
是在这里吗 ?listen       12.34.56.78:443 default_server ssl http2;

我认为默认站点就不用加什么http2了
发表于 2016-8-7 23:06:20 来自手机 | 显示全部楼层
关注,同需求。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-7 01:27 , Processed in 0.087372 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表