6

我在 java 中使用 Keytool 来生成密钥库/CSR 以提交给证书颁发机构。

我的 CA 只支持 MD5withRSA 和 SHA1withRSA

每次我使用 keytool 创建密钥库并导出 CSR 时,我都会得到一个 SHA256withRSA 签名算法。

我已经尝试手动设置 -sigalg 但无论我尝试将其设置为 md5 还是 sha1,它都会一直转到 sha256

有人可以告诉我我做错了什么

keytool -genkey -alias server -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -keystore www_mydomain_com.jks -dname "CN=www.mydomain.com,OU=it, O=mycompany, L=thecity, ST=thestate, C=US" && keytool -certreq -alias server -file www_mydomain_com.csr -keystore www_mydomain_com.jks

keytool -genkey -alias server -keyalg RSA -sigalg MD5withRSA -keysize 2048 -keystore www_mydomain_com.jks -dname "CN=www.mydomain.com,OU=it, O=mycompany, L=thecity, ST=thestate, C=US" && keytool -certreq -alias server -file www_mydomain_com.csr -keystore www_mydomain_com.jks

这两个命令都创建了一个显示 SHA256withRSA 的 csr

4

4 回答 4

6

您应该将 -sigalg SHA1WithRSA 参数添加到实际生成 CSR 的第二个 keytool 调用中。

于 2013-01-04T20:20:25.693 回答
3

$ keytool -genkey -alias selfsignedcert -keyalg RSA -sigalg SHA1withRSA -keypass privatepassword -keystore identity.jks -storepass password -validity 365

于 2015-02-05T20:13:11.633 回答
2

您必须在创建 CSR(而不是密钥库)时分配 sigalg:

$ keytool -certreq -alias <alias> -keystore <keystore>.jks -file <file>.csr -sigalg SHA1WithRSA
于 2015-10-21T11:10:50.600 回答
0

sha1 已过期且仅在 2016 年之前有效。您必须升级到 sha2。试试看,让我知道这是否能解决您的问题。-杰德A

于 2017-01-12T03:09:36.173 回答