我使用以下步骤创建一个带有私钥/公钥对的新Java密钥库,供Java(内部)服务器使用TLS。请注意,证书是自签名的:
1) 使用AES256生成密钥
1) 使用AES256生成密钥
openssl genrsa -aes256 -out server.key 1024
2) 为CA生成证书请求
openssl req -x509 -sha256 -new -key server.key -out server.csr
3) 生成有效期为10年的自签名证书
openssl x509 -sha256 -days 3652 -in server.csr -signkey server.key -out selfsigned.crt
4) 使用类似KeyStoreExplorer这样的程序,在新的JKS中导入密钥对(私钥和自签名证书)。
这样做是可行的,但我想实现最后一步而不使用GUI。
我知道如何仅导入自签名证书:
// create the keystore and import the public key. THIS WILL NOT IMPORT THE PRIVATE KEY SO THE KEYSTORE CAN'T BE USED ON THE SERVER TO MAKE THE TLS CONNECTION
/usr/java/jdk1.6.0_45/bin/keytool -import -alias myservercert -file server.crt -keystore mykeystore.jks
所以问题是:我如何创建一个Java KeyStore并在不使用GUI的情况下导入既包含公钥又包含私钥的证书?