我们的业务合作伙伴之一要求我们使用TLS SHA256证书连接到他们的API。我不确定如何生成这些请求。我过去曾使用openssl创建这些请求,但它使用SHa1生成了SSL证书。我可以使用openssl生成此请求吗?如果没有,我该如何生成他们的要求?
我不是该领域的专家,所以我什至不知道我的要求是否有意义。
我们的业务合作伙伴之一要求我们使用TLS SHA256证书连接到他们的API。我不确定如何生成这些请求。我过去曾使用openssl创建这些请求,但它使用SHa1生成了SSL证书。我可以使用openssl生成此请求吗?如果没有,我该如何生成他们的要求?
我不是该领域的专家,所以我什至不知道我的要求是否有意义。
Answers:
CSR哈希和cert哈希无关
请求和实际证书上的哈希类型彼此无关。
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
好。就像我们想要的那样使用SHA256。