OCSP请求生成器

2024-04-28 15:58:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用张贴在以下位置的答案检查某些端点的OCSP状态: [1] :How to check OCSP client certificate revocation using Python Requests library?

我在尝试验证zeroSSL颁发的证书的oscp状态时遇到了一个问题,因为该状态返回Unauthorized,但是,通过一些在线Web服务检查它,返回的状态仍然良好

在ocsp请求生成器中,将算法从sha256更改为sha1,并且成功了。这个散列算法是在哪里定义的,我想ocsp服务器用来签署请求的算法是什么

如何找到ocsp服务器之前使用的算法,或者是否可以预先确定ocsp服务器使用的哈希算法

def Get_OCSP_ReqBuilder(clientcert,issuercert,ocsp_location):
    builder = OCSPRequestBuilder()
    req = builder.add_certificate(clientcert,issuercert,SHA256()) # Replaced A SHA1() here.
    req2 = req.build() 
    req_path = base64.b64encode(req2.public_bytes(serialization.Encoding.DER))
    ocsp_requestencoded = urljoin(ocsp_location + '/', req_path.decode('ascii'))
    return ocsp_requestencoded

Tags: path答案服务器算法状态builderlocationcertificate
1条回答
网友
1楼 · 发布于 2024-04-28 15:58:20

据我所见,SHA1是提出OCSP请求的良好起点。OCSP RFC的早期版本要求OCSP响应者支持它,所以它成为默认版本。{a1}表示唯一受支持的算法是SHA1、SHA224、SHA256、SH384和SHA512,因此如果您想变得健壮,可以实现一个小的回退例程来检查其他算法。如果你必须的话,即使尝试所有这些也不会太可怕

我遇到了与您相同的问题:使用SHA256散列的请求的响应状态为unauthorized,但在使用SHA1时成功。这是令人沮丧的,因为协议中没有任何定义查询支持的算法的方法,而且响应的范围很窄,而且不具有很强的描述性,因此系统最终会收到无用的错误消息。与“未经授权”相比,如果响应是“畸形请求”,我可能会更快地找到它

相关问题 更多 >