首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java KeyStore中导入私钥/公共证书对

在Java KeyStore中导入私钥/公共证书对
EN

Stack Overflow用户
提问于 2013-07-17 16:52:46
回答 1查看 202.5K关注 0票数 75

我使用以下步骤创建了一个新的Java密钥库,其中包含一对私钥/公钥,供带有TLS的Java (内部)服务器使用。请注意,证书是自签名的:

1)使用AES256生成密钥

代码语言:javascript
复制
openssl genrsa -aes256 -out server.key 1024

2)生成CA证书申请

代码语言:javascript
复制
openssl req -x509 -sha256 -new -key server.key -out server.csr

3)生成自签名过期时间10年

代码语言:javascript
复制
openssl x509 -sha256 -days 3652 -in server.csr -signkey server.key -out selfsigned.crt

4)使用KeyStoreExplorer之类的程序将密钥对(私钥和自签名证书)导入到新的JKS中

这是可行的,但我想在不使用GUI的情况下实现最后一步。

我只知道如何导入自签名证书:

代码语言:javascript
复制
// 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的情况下同时导入带有公钥和私钥的证书?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-18 05:31:04

使用您的私钥和公共证书,您需要首先创建一个PKCS12密钥库,然后将其转换为JKS。

代码语言:javascript
复制
# Create PKCS12 keystore from private key and public certificate.
openssl pkcs12 -export -name myservercert -in selfsigned.crt -inkey server.key -out keystore.p12

# Convert PKCS12 keystore into a JKS keystore
keytool -importkeystore -destkeystore mykeystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias myservercert

要验证JKS的内容,可以使用以下命令:

代码语言:javascript
复制
keytool -list -v -keystore mykeystore.jks

如果这不是自签名证书,您可能希望按照此步骤导入通向受信任CA证书的证书链。

票数 180
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17695297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档