Nginx Apache齐柏林飞艇websockets是否经过身份验证?

Nginx Apache齐柏林飞艇websockets是否经过身份验证?,nginx,websocket,apache-zeppelin,Nginx,Websocket,Apache Zeppelin,按照这里的指导 我使用nginx.conf(几乎)一字不差地将齐柏林飞艇部署在一个nginx代理之后,以通过https实现基本身份验证,nginx将其作为我的内部未受保护齐柏林飞艇实例的代理。我的目的是通过在上游内部通信未加密的情况下使用https到nginx来实现机密性——假设所有外部通信都经过加密和身份验证。我对齐柏林飞艇网站的印象是,他们在这里的指导达到了合理但保守的现代安全标准 我担心的是,nginx auth代理对于websocket端点的作用不如https端点。我的问题(主要是针对

按照这里的指导

我使用nginx.conf(几乎)一字不差地将齐柏林飞艇部署在一个nginx代理之后,以通过https实现基本身份验证,nginx将其作为我的内部未受保护齐柏林飞艇实例的代理。我的目的是通过在上游内部通信未加密的情况下使用https到nginx来实现机密性——假设所有外部通信都经过加密和身份验证。我对齐柏林飞艇网站的印象是,他们在这里的指导达到了合理但保守的现代安全标准

我担心的是,nginx auth代理对于websocket端点的作用不如https端点。我的问题(主要是针对Zepp贡献者)是,这是否建议Nginx身份验证和https配置可以保护websocket通道不被未经授权的使用?身份验证是否由通过/ws-uri连接到它的客户端的齐柏林飞艇服务器进行

这里的链接#2通过启用Zepellin内部的身份验证系统,使其听起来像websockets/可以/被“保护”。然而,这似乎违背了齐柏林飞艇团队在第一个环节中提出的更好的建议,他们建议将认证和齐柏林飞艇问题分开

那么,齐柏林飞艇是否可以在使用Nginx的basic auth over https设置之后进行加固(就像basic auth一样硬)?换句话说,齐柏林飞艇是否在ed内对websocket客户端进行身份验证,或者nginx验证的齐柏林飞艇前端是否可以被欺骗,从而在不需要nginx密码的情况下建立websocket连接?如何更改此nginx.conf以实现非https、非wss齐柏林飞艇上游服务器的安全nginx代理

upstream zeppelin {
    server 192.168.1.200:38080;
}

server {
    listen 443 ssl;
    server_name mysite.com;

    ssl_certificate /etc/nginx/key/nginx_20191222.crt;
    ssl_certificate_key /etc/nginx/key/nginx_20191222.key;
    ssl_protocols   TLSv1.2;
    ssl_ciphers     HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://zeppelin;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;

        auth_basic        "Private site";
        auth_basic_user_file  conf.d/passwd;
    }

    location /ws {  
        proxy_pass http://zeppelin;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;    #websocket;
        proxy_set_header Connection upgrade;
        proxy_read_timeout 86400;
    }
}

在升级到WS/WSS之前,初始连接将始终是HTTP/HTTPS。。。但是,与您描述的代理设置类似,这听起来不像端到端加密。但是,是否可以使用此配置直接建立到/ws端点的初始连接,而无需验证即可查看http前端?这就是为什么。。。您只需从nginx.conf中删除
auth_basic
。唯一的问题是,endpoint/ws听起来不是加密的,因此纯文本凭据可能会泄漏(即使仅在您的专用网络上)。如果齐柏林飞艇有一个可公开访问的IP地址,人们可以签署SSL证书,以便进行端到端加密。对于齐柏林飞艇开发人员:WSS是否固有地受到支持?您是否执行任何类型的“票务”或类似操作来验证新的websocket请求,就像这里讨论的那样?下面是Knox配置的示例,它还建议导入自签名证书。或者这里有一个例子,它暗示了由于两个bug(不确定这有多实际),它不能完美地工作。