如何创建TLS SHA256证书请求


10

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

我不是该领域的专家,所以我什至不知道我的要求是否有意义。

tls  openssl 

如果您是我今天要告诉我回来使用SHA256 CSR而不是SHA1的12个人之一,那对我来说将很有趣。
Hyppy 2015年

@Hyppy,我希望您在年底还能发现它很有趣:)
Maarten Bodewes 2015年

Answers:


12

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。


5

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.