我们的一个业务合作伙伴要求我们使用 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。
归档时间: |
|
查看次数: |
8131 次 |
最近记录: |