nginx:将 OCSP 请求重新路由/代理到不同的后端

nginx:将 OCSP 请求重新路由/代理到不同的后端

我想将 OCSP 流量从常规 HTTP 流量过滤/重新路由到不同的后端。审核OCSP 协议的网络分析如果 OCSP 请求是通过 POST 发出的,我可以根据 进行过滤Content-Type: application/ocsp-request。棘手的部分是,如果 OCSP 请求是通过 GET 发出的,则 OCSP 请求是DER->Base64 encoded->urlencoded并附加到 uri。虽然 PDF 确实说明了,但如果您知道请求中的内容,则可以针对唯一值创建正则表达式。如果您有很多不同的证书,这会变得很麻烦。

我喜欢这样做的原因有以下几点:

  1. 目前,我的 OCSP uri 指向http://ocsp.example.net:6139在某些网络上,该端口可能会被阻止。
  2. 我喜欢让 CRL 和 OCSP uri 指向同一个位置。

关于 GET 请求,我能想到的唯一解决方案是让它传递到后端,如果是 404,则再次将其代理到我的 OCSPd 守护程序。不过,我见过的大多数示例都建议为 OCSP 请求设置一个专用的唯一域,这违背了第 2 点。

有人会建议什么是解决这个问题的更好的解决方案吗?

server {
    listen 0.0.0.0:80;
    server_name ocsp.example.net;
   
    
    location /.well-known {
        autoindex on;
    }
    
    
    location / {
        error_page 418 = @ocspd;
        
        if ($content_type == "application/ocsp-request") {
            return 418;
        }
        
        proxy_pass https://192.168.101.30:443;
        include proxy_params;
    }

    location @ocspd {
        proxy_pass https://192.168.101.19:6139;
        include proxy_params;
    }
}

相关内容