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