我想将 OCSP 流量从常规 HTTP 流量过滤/重新路由到不同的后端。审核OCSP 协议的网络分析如果 OCSP 请求是通过 POST 发出的,我可以根据 进行过滤Content-Type: application/ocsp-request
。棘手的部分是,如果 OCSP 请求是通过 GET 发出的,则 OCSP 请求是DER->Base64 encoded->urlencoded
并附加到 uri。虽然 PDF 确实说明了,但如果您知道请求中的内容,则可以针对唯一值创建正则表达式。如果您有很多不同的证书,这会变得很麻烦。
我喜欢这样做的原因有以下几点:
- 目前,我的 OCSP uri 指向http://ocsp.example.net:6139在某些网络上,该端口可能会被阻止。
- 我喜欢让 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;
}
}