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 が応答をキャッシュしないことです。ノンスはリクエストの一部として送信されていません。Wireshark を使用して、すべてのリクエストが (HTTP レイヤーで) 同一であることを確認しました。応答をキャッシュするように nginx を構成するにはどうすればよいですか?
注、テストには次のコマンドを使用します。
openssl ocsp -issuer cacert.crt -no_nonce -CAfile CAbundle.crt -url http://localhost/ -serial <SERIAL>