Я хочу использовать nginx в качестве кеширующего прокси-сервера перед ответчиком OCSP. «Запрос OCSP с использованием метода POST строится следующим образом: заголовок Content-Type имеет значение «application/ocsp-request», а тело сообщения представляет собой двоичное значение кодировки DER OCSPRequest». (из 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;
}
)
Я могу получить доступ к ответчику OCSP через nginx, и ответы получены, как и ожидалось - без проблем. Проблема в том, что nginx не кеширует ответы. Nonces не отправляются как часть запроса. Используя Wireshark, я убедился, что все мои запросы идентичны (на уровне HTTP). Как настроить nginx, чтобы он кешировал ответы?
Обратите внимание, я использую следующую команду для тестирования:
openssl ocsp -issuer cacert.crt -no_nonce -CAfile CAbundle.crt -url http://localhost/ -serial <SERIAL>