gpt4 book ai didi

java - 使用keytool创建服务器证书所需的最少步骤数

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:43 26 4
gpt4 key购买 nike

我想创建一个“公司”自签名证书,该证书将用于对公司中的所有其他证书进行签名。我的目标是仅将Java keytool用于此目的。

我的第一步是在“组织范围”的信任库密钥库中创建公司自签名证书:

keytool -genkeypair -keystore truststore.jks -storepass changeit -alias ca -keypass changeit -dname CN=ca,OU=dev,O=myorg

然后,我在其自己的服务器密钥存储区中创建了另一个服务器证书,生成了CSR,最后用上面刚刚生成的ca自签名证书将其选中:

keytool -genkeypair -keystore server.jks -storepass changeit -alias server -keypass changeit -dname CN=server,OU=dev,O=myorg

keytool -certreq -keystore server.jks -storepass changeit -alias server -keypass changeit -file server.csr

keytool -gencert -keystore truststore.jks -storepass changeit -alias ca -keypass changeit -infile server.csr -outfile server.cer

现在,当我尝试在服务器密钥库中重新导入已签名的服务器证书时:

keytool -importcert -keystore server.jks -storepass changeit -alias server -keypass changeit -file server.cer

我遇到以下错误:

keytool错误:java.lang.Exception:无法通过回复建立链

为了克服这个问题,我从信任库中导出了自签名证书,并将其导入到服务器密钥库中:

keytool -exportcert -keystore truststore.jks -storepass changeit -alias ca -keypass changeit -file ca.cer

keytool -importcert -keystore server.jks -storepass changeit -alias ca -keypass changeit -file ca.cer -noprompt

最后,重新导入服务器证书,这次成功。

尽管这可能行得通,但我对这种解决方案并不满意:在导入由自签名证书签名的服务器证书之前,先导入自签名证书。

我正在寻找一个keytool操作序列,该序列将允许我生成证书请求,通过自签名证书对其进行签名,然后将该证书导入密钥存储区,而无需同时导入根证书:服务器证书应为服务器存储中只有证书。

我不想将openssl用于此目的,也不想涉及cacerts。可能吗?

最佳答案

从我所看到的,您需要导入CA证书的公钥,以便导入签名的证书。不知道如果在之后删除它会发生什么...我猜是它将破坏证书。将cacert包含在服务器证书中怎么了?

This post包含Windows Power Shell脚本,该脚本使用keytool创建CA证书,服务器证书,客户端证书和信任库。它包括一些可能有用的扩展...值得一看。

希望这可以帮助。

最好,
高手

关于java - 使用keytool创建服务器证书所需的最少步骤数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41414769/

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