我想从 Linux 验证 Microsoft OCSP 服务器的操作。我尝试使用 OpenSSL,但它总是返回:
Error querying OCSP responder 140643157128320:error:27076072:OCSP routines:parse_http_line1:server response error:../crypto/ocsp/ocsp_ht.c:260:Code=405,Reason=Method Not Allowed
我在服务器端检查并注意到 OpenSSL 使用 POST 方法,而不是 certutil 使用的 GET 方法(效果很好):
# certutil Request
2021-09-28 10:26:51 10.11.12.13 GET /ocsp/<OCSP request> - 80 - 10.11.12.14 Microsoft-CryptoAPI/10.0 - 200 0 0 4583
# OpenSSL Request
2021-09-28 10:26:51 10.11.12.13 POST / - 80 - 10.11.12.15 - - 405 0 1 5991
似乎不能强迫 OpenSSL 使用 GET 而不是 post,但也许还有其他一些实用程序?
或者相反,是否有一种方法可以强制 MS OCSP 响应者也与 POST 一起工作?
您需要将
-no_nonce
选项添加到 OpenSSL。Microsoft OCSP 服务器不支持请求中的 nonce。