我正在使用下面发布的答案检查某些端点的OCSP状态: 1:如何使用Python请求库检查OCSP客户端证书吊销?
我遇到了一个问题,试图验证由zeroSSL颁发的证书的示波器状态,因为状态是未经授权返回的,但是,通过一些在线for服务返回状态检查它是好的。
在ocsp请求生成器中将算法从sha256更改为sha1,并且工作正常。在哪里定义了这个散列算法,ocsp服务器是否使用它来签署请求?
如何在手之前找到ocsp服务器使用的algo,或者是否可能预先确定ocsp服务器使用的散列algo?
def Get_OCSP_ReqBuilder(clientcert,仙Replaced,ocsp_location):builder = OCSPRequestBuilder() req = builder.add_certificate(clientcert,仙Replaced,SHA256()) #替换了A SHA1()。base64.b64encode(req2.public_bytes(serialization.Encoding.DER)) req2 = req.build() req_path = ocsp_requestencoded = urljoin(ocsp_location + '/',req_path.decode('ascii'))返回ocsp_requestencoded
发布于 2021-04-23 23:54:34
据我所见,SHA1是创建OCSP请求的良好起点。OCSP RFC早期的转速要求OCSP响应者支持它,因此它成为一个默认。x509文档说唯一受支持的algos是SHA1、SHA224、SHA256、SHA384和SHA512,所以如果您想要变得健壮,可以实现一个小的回退例程来检查其他的。如果你必须试一试也不算太糟。
我遇到了与您相同的问题:对于使用SHA256散列但在使用SHA1时成功的请求,未授权的响应状态。这是令人沮丧的,因为协议中没有任何东西定义查询受支持的algos的方法,而且响应范围很窄,而且描述性不强,因此系统最终会产生无用的错误消息。如果响应是"malformedRequest“,而不是”未经授权的“,我可能会更快地找到它。
https://stackoverflow.com/questions/66300171
复制相似问题