设定

客户端 Nginx负载均衡器 IIS 8

(我知道有人会问为什么要在nginx和IIS之间使用SSL,但这不是我的问题。)

错误情况

垃圾邮件/扫描客户端使用无效的主机名与SSL连接,例如客户端指定的主机名包含星号(*)。这使得IIS在握手期间关闭连接,然后Nginx将其视为IIS处于关闭状态。

然后,当所有IIS服务器都关闭时,下一个请求将从Nginx获取“ Bad网关”。这允许客户端认为IIS已关闭,从而错误地操纵Nginx。

怎么修?

如何解决这个问题?


是否可以通过无效拒绝nginx配置中的请求
基于主机名看字符?
还是有可能使IIS在这些情况下的行为有所不同? IIS已经具有捕获所有ssl绑定的功能,该绑定仅返回禁止的403,但在说明的情况下未实现。
还是我必须在nginx配置中专门列出所有允许的主机名?

最佳答案

像这样:



http {
    .....
    map $request_uri $blockit {
        default              0;
        ~*\*\.;              1;
    }
    .....
    server {
        .....
        location / {
            if ($blockit) { return 403; }
            .....

关于iis - nginx和IIS-处理无效的主机名和SSL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30727246/

10-16 07:53