gpt4 book ai didi

tomcat - 如何将 SHA256RSA 签名的服务器证书转换为 SHA1RSA?

转载 作者:行者123 更新时间:2023-11-28 21:50:22 29 4
gpt4 key购买 nike

我正在使用 tomcat keystore 生成私钥。生成并提交证书请求后,服务器证书似乎具有签名 SHA256RSA 算法并最终给出“无法建立来自回复错误的链”。根证书和中间证书都是 SHA1RSA。在生成 key 对和证书请求时,已将其指定为 SHA1RSA 作为签名算法。

有人可以协助如何使用 SHA256RSA 生成服务器证书吗?

以下是我遵循的步骤(为了便于阅读分成多行):

keytool -genkey -dname "CN=xxxx, OU=Servers, O=xx, C=US" \
-alias tomcat -keyalg RSA -sigalg SHA1withRSA -keysize 2048 \
-keypass xxx -keystore tomcat2k.keystore

keytool -certreq -v -alias tomcat -keyalg RSA -sigalg SHA1withRSA \
-keysize 2048 -keypass xxx -file certreq.csr -keystore tomcat2k.keystore

收到的证书:根证书、中级证书(SHA1RSA)和服务器证书(SHA256RSA)根。

中级被导入。服务器证书无法建立链。

最佳答案

如果您有权访问 openssl,我建议使用它而不是 keytool。如果生成证书签名请求,请使用选项 -sha256 设置您要查找的散列算法。

首先生成证书签名请求:

$ openssl genrsa -des3 -out server.key 4096
$ openssl req -new -key server.key -out server.csr -sha256

让您选择的 CA 签署证书签名请求。如果你想要一个自签名证书,你可以使用下面的,否则跳过这一步:

$ openssl genrsa -des3 -out ca.key 4096
$ openssl req -new -x509 -days 365 -key ca.key -out ca.pem
$ openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca.key -set_serial 01 -out server.pem

最后,将证书签名的server.pem证书转换为p7b,这是tomcat期望的,然后将p7b导入tomcat keystore。

$ openssl crl2pkcs7 -nocrl -certfile server.pem -out tomcat2k.p7b -certfile ca.pem
$ keytool -import -trustcacerts -alias server -file tomcat2k.p7b -keystore tomcat2k.jks

关于tomcat - 如何将 SHA256RSA 签名的服务器证书转换为 SHA1RSA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792514/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com