将SAN添加到SSL证书(Java)

时间:2011-05-13 07:30:14

标签: java ssl

我想创建一个带有SAN字段(主题备用名称)的自签名证书,但Java keytool工具似乎不支持。什么是我最好的选择?这是供Java使用的,因此即使使用非Java工具创建证书,密钥库仍必须与JKS格式匹配。

5 个答案:

答案 0 :(得分:9)

您可以在创建CSR时将SAN功能添加到命令中来执行此操作:

创建密钥库:

keytool -genkey -alias SANTEST -keyalg RSA -keystore SANTEST.jks -keysize 2048

发布CSR:

keytool -certreq -alias SANtest01 -keystore SANTEST.jks -ext san=dns:san.yourdomain.com -keysize 204

http://download.java.net/jdk8/docs/technotes/tools/solaris/keytool.html

答案 1 :(得分:2)

只能使用JDK7或更高版本的keytool执行此操作。 OpenJDK 7有它。

答案 2 :(得分:1)

听起来像获取更新的keytool可能是最简单的,但您也可以使用openssl然后import that into keytool创建使用备用名称设置的证书。

答案 3 :(得分:1)

JDK7建议很好。与此同时,我可以使用Bouncy Castle图书馆。以编程方式而不是使用keytool来实现它是有教育意义的,并且以jks格式获取商店很简单。

答案 4 :(得分:1)

您可以使用http://Ssltools.com/manager创建San证书并将其导出,然后将其导入密钥库。

keytool -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore my-keystore.jks -srckeystore cert-and-key.p12 -srcstoretype PKCS12 -srcstorepass cert-and-key-password -alias 1