如何创buildTLS SHA256证书请求

我们的一个业务合作伙伴要求我们使用TLS SHA256证书连接到他们的API。 我不知道如何生成这些请求。 过去我使用过openssl来创build这些请求,但是它使用SHa1生成了一个SSL证书。 我可以使用openssl来产生这个请求吗? 如果不是我如何产生他们所要求的?

我不是这个领域的专家,所以我甚至不知道我问的是否合理。

CSR哈希和cert哈希不相关

请求和实际证书上的散列types不相互关联。

CA检查CSR上的签名。 这样,CA就可以validationCSR在运输过程中没有发生变化。 这就是CSR所做的全部签名。

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

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

如何使用SHA256签署CSR
这就是说,使用-sha256参数来签名你的CSR与SHA256像这样:

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

如何检查CSR的散列types
这就是你如何找出CSR的散列types:

 $ openssl req -in www.example.com.sha256.csr -noout -text | grep Signature Signature Algorithm: sha256WithRSAEncryption 

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

如果您使用的是OpenSSL,则只需添加-sha256命令行选项,即可生成带有SHA-256签名algorithm的CSR。