我想在 OCSP 响应器前使用 nginx 作为缓存代理。'使用 POST 方法的 OCSP 请求构造如下:Content-Type 标头具有值“application/ocsp-request”,而消息正文是 OCSPRequest 的 DER 编码的二进制值。(来自 RFC2560)
因此,我将 nginx 配置如下:
proxy_cache_path /tmp/nginx/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
server {
# Make site accessible from http://localhost/
server_name localhost;
location / {
proxy_pass http://213.154.225.237:80; #ocsp.cacert.org
proxy_cache my-cache;
proxy_cache_methods POST;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
proxy_cache_key "$uri$request_body";
expires off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
)
我可以通过 nginx 访问 OCSP 响应程序,并按预期收到响应 - 没问题。问题是 nginx 不缓存响应。Nonce 不会作为请求的一部分发送。使用 Wireshark,我验证了我的所有请求都是相同的(在 HTTP 层上)。如何配置 nginx 缓存响应?
注意,我使用以下命令进行测试:
openssl ocsp -issuer cacert.crt -no_nonce -CAfile CAbundle.crt -url http://localhost/ -serial <SERIAL>