在Javaservlet中以编程方式利用keytool创建证书/密钥对

在Javaservlet中以编程方式利用keytool创建证书/密钥对,java,servlets,cryptography,keystore,keytool,Java,Servlets,Cryptography,Keystore,Keytool,我们需要创建一个HTTP服务,该服务可以创建并返回由可信父证书签名的证书。我们最初的计划是在使用Runtime.exec的Servlet中使用jdk的bin目录中的keytool,但keytool命令似乎需要回答命令行上的提示 例如:keytool-genkey-alias mydomain-keyalg RSA-keystore keystore.jks-keysize 2048在命令行上询问许多问题 我们的下一个想法是使用java.security.KeyStore,但我没有看到导出和持久化

我们需要创建一个HTTP服务,该服务可以创建并返回由可信父证书签名的证书。我们最初的计划是在使用Runtime.exec的Servlet中使用jdk的bin目录中的keytool,但keytool命令似乎需要回答命令行上的提示

例如:
keytool-genkey-alias mydomain-keyalg RSA-keystore keystore.jks-keysize 2048
在命令行上询问许多问题


我们的下一个想法是使用java.security.KeyStore,但我没有看到导出和持久化存储的方法,我们希望将所有证书保存在一个jks文件中。如果web容器崩溃,我们肯定需要能够保留所有PKI工件。

试试。如果GUI不能做到这一点,那么只需从源代码中提取信息。

因为这是谷歌的顶级结果之一,我最终找到了答案

$ java -version
java version "1.7.0_11"
$ keytool -genkey -keysize 2048 \
  -alias tomcat \
  -keyalg RSA \
  -dname "CN=example.com,OU=MyOrgUnit,O=MyOrg,L=Somewhere,S=State,C=US" \
  -storepass Secret -keypass Secret \
  -keystore keystore.jks

希望这对其他人有帮助。

您尝试过java 7 keytool吗?我想你可以把所有东西都放在命令行上,避免出现提示。顺便问一下,你不能复制一下商店吗?