为了账号安全,请及时绑定邮箱和手机立即绑定

将私有密钥/公共证书对导入到Java KeyStore中

将私有密钥/公共证书对导入到Java KeyStore中

温温酱 2019-11-22 15:28:57
我使用以下步骤创建了一个带有一对私钥/公钥的新Java密钥库,供具有TLS的Java(内部)服务器使用。请注意,证书是自签名的:1)使用AES256生成密钥openssl genrsa -aes256 -out server.key 10242)生成CA的证书请求openssl req -x509 -sha256 -new -key server.key -out server.csr3)生成自签名有效期10年openssl x509 -sha256 -days 3652 -in server.csr -signkey server.key -out selfsigned.crt4)使用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因此,问题是:如何在不使用GUI的情况下如何创建Java KeyStore并同时使用公共密钥和私有密钥导入证书?
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

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


# 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的内容,可以使用以下命令:


keytool -list -v -keystore mykeystore.jks

如果这不是一个自签名证书,则可能要遵循此步骤,导入证书链,该证书链通向受信任的CA证书。


查看完整回答
反对 回复 2019-11-22
?
动漫人物

TA贡献1815条经验 获得超10个赞

密钥库需要密钥库文件。该KeyStore级需要FileInputStream。但是,如果您提供null(而不是FileInputStream实例),则会加载一个空的密钥库。创建密钥库后,您可以使用验证其完整性keytool。


以下代码使用空密码创建一个空密钥库


  KeyStore ks2 = KeyStore.getInstance("jks");

  ks2.load(null,"".toCharArray());

  FileOutputStream out = new FileOutputStream("C:\\mykeytore.keystore");

  ks2.store(out, "".toCharArray());

拥有密钥库后,导入证书非常容易。在此链接中查看示例代码。


查看完整回答
反对 回复 2019-11-22
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

您对的观察InpputStream.available()是正确的,但是我看到的文档FilterInputStream.available()返回了可以从此输入流读取(或跳过)的字节数的估计值,并且没有警告!在示例(在Blog中)中,DataInputStream.available() 在任何地方都使用&FilterInputStream扩展DataInputStreamavailable()在这种特殊情况下使用不安全吗?

查看完整回答
反对 回复 2019-11-22
  • 3 回答
  • 0 关注
  • 381 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信