Onepiece3610 2022-03-03 08:38 采纳率: 33.3%
浏览 205
已结题

nginx 拒绝非sni https请求

我想测试下nginx拒绝不携带servername字段过来ssl建联的https请求,即非sni的https请求
nginx的sni是开启的

img

服务器设置的nginx配置如下:

http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '[$time_local]"$status"';
    sendfile        on;
    keepalive_timeout  65;
    server {
        #SSL 访问端口号为 443
        listen 443 ;
        ssl on;
        #填写绑定证书的域名
       server_name  caiyd2.8686c.com;
        #证书文件名称
        ssl_certificate caiyd2.8686c.com_bundle.crt;
        #私钥文件名称
        ssl_certificate_key caiyd2.8686c.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location ~ /.+$  {
            root   html;
        }
        server {
                listen 80
                listen 443 default_server;
                return 403 "Wrong servername!";
        }
}

但是这样测试的话,https所有请求都无法建联,看上去是因为匹配到了默认的server(default_server),然后里面没证书导致无法建联。

img


我把默认的server注释掉,只留下一个server的话,不是caiyd2.8686c.com的域名也能建联成功。 在我看来sni是没起作用的。

我理解的是,sni开启的作用是在ssl证书交互环节,通过携带的server_name字段,确认应该用哪个server里面的证书来建联,但是现在看还是按照普通的逻辑:通过请求中的host字段来匹配server,匹配不到就选默认的server。

我想实现的是只有https请求中携带了servername字段为caiyd2.8686c.com的请求才接受,其他域名的https请求或者域名caiyd2.8686c.com的非sni请求,在ssl握手阶段就不让建联,请问是可以怎么实现呢,

我感觉我上面按照sni的逻辑来看的话,是应该实现的,希望有人指点下,谢谢。

  • 写回答

9条回答 默认 最新

  • a718089112 2022-03-03 10:09
    关注
    获得1.50元问题酬金

    sni的作用是允许nginx配置额外https域名的,可以允许多个域名使用https证书,作用是放开,不是拒绝啊。

    其他域名的https请求,如果其他域名不支持https,用户访问https本身就不能访问啊,你没有配置也能访问?
    caiyd2.8686c.com非https请求,一般是nginx自动配置转换成https,示例,你浏览器输入地址:http://www.baidu.com,url会自动变成:https://www.baidu.com

    评论

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误