如何创建 TLS SHA256 证书请求

10 openssl tls

我们的一个业务合作伙伴要求我们使用 TLS SHA256 证书连接到他们的 API。我不确定如何生成这些请求。我过去曾使用 openssl 创建这些请求,但它使用 SHA1 生成了 SSL 证书。我可以使用 openssl 来生成这个请求吗?如果不是,我如何生成他们要求的内容?

我不是这个领域的专家,所以我什至不知道我问的是否有意义。

Sta*_*uff 12

CSR 哈希和证书哈希不相关

请求上的散列类型和实际证书上的散列类型彼此无关。

CA 检查 CSR 上的签名。这样,CA 可以验证 CSR 在传输过程中没有更改。这就是 CSR 上的所有签名。

没有官方(甚至半官方)带内方式告诉 CA 您想要什么哈希。相反,一家 CA 公司可能会运行多个 CA,其中一个专门使用 SHA256。如果您想要 SHA256,那么您可以在该特定 SHA256-only-CA 的网站上提交您的 CSR。(而不是在他们的 SHA1-CA 网站上。)

通常的理论是这样的:“如果我提交用 SHA1 签名的 CSR,那么我的证书将用 SHA1 签名。” 这通常不会完成。(我所知道的唯一一个曾经这样做过一段时间的 CA 是 Gandi.net。)

如何使用 SHA256 签署 CSR 话
虽如此,请使用该-sha256参数使用 SHA256 签署您的 CSR,如下所示:

openssl req -new -newkey rsa:2048 -nodes -sha256 -out www.example.com.sha256.csr -keyout www.example.com.key -subj "/C=US/ST=ExampleState/L=ExampleLocation/O =ExampleOrganisation/CN=www.example.com"

如何检查 CSR 的哈希类型
这就是您找出 CSR 的哈希类型的方法:

$ openssl req -in www.example.com.sha256.csr -noout -text | grep Signature  
    Signature Algorithm: sha256WithRSAEncryption
Run Code Online (Sandbox Code Playgroud)

好的。它就像我们想要的那样使用 SHA256。


Hyp*_*ppy 5

如果您使用的是 OpenSSL,您可以简单地添加-sha256命令行选项,该选项将使用 SHA-256 签名算法生成 CSR。