如何从现有证书(abc.crt)和abc.key文件创建密钥库?

Rav*_*ain 62 ssl keytool

我试图将证书和密钥文件导入密钥库,但我无法做到这一点.

如何通过导入现有证书(abc.crt)和abc.key文件来创建密钥库?

Bru*_*uno 111

最简单的可能是使用OpenSSL创建PKCS#12文件:

openssl pkcs12 -export -in abc.crt -inkey abc.key -out abc.p12
Run Code Online (Sandbox Code Playgroud)

您应该能够使用PKCS12密钥库类型直接使用生成的文件.

如果您真的需要,可以使用keytool -importkeystore(keytool从Java 6中获得)将其转换为JKS :

keytool -importkeystore -srckeystore abc.p12 \
        -srcstoretype PKCS12 \
        -destkeystore abc.jks \
        -deststoretype JKS
Run Code Online (Sandbox Code Playgroud)

  • @HenningMakholm,你的私钥文件可能没有密码保护,你必须在创建PKCS#12文件时设置一个. (3认同)
  • 生成的密钥库与平台无关。OSX 和大多数 Linux 发行版应该附带 OpenSSL(否则,只需安装该软件包)。也有适用于 Windows 的二进制文件(例如,[此处](http://www.openssl.org/lated/binaries.html),尽管您可能也可以找到其他地方。) (2认同)

小智 32

您必须使用OpenSSL和keytool.

用于CER和PVK文件的OpenSSL> P12

OpenSSL的PKCS12 -export -name servercert -in selfsignedcert.crt -inkey serverprivatekey.key退房手续myp12keystore.p12

用于p12的Keytool> JKS

密钥工具-importkeystore -destkeystore mykeystore.jks -srckeystore myp12keystore.p12 -srcstoretype PKCS12 -alias servercert

  • 私钥在哪里? (3认同)
  • 这与之前的另一个答案有什么不同? (2认同)

Swa*_*rna 7

添加到 @MK Yung 和 @Bruno 的答案.. 请输入目标密钥库的密码。当我在没有密码的情况下输入命令时,我看到控制台挂起。

openssl pkcs12 -export -in abc.crt -inkey abc.key -out abc.p12 -name localhost  -passout pass:changeit
Run Code Online (Sandbox Code Playgroud)


Dic*_*yus 6

理想情况下,您应该收到 3 个文件: ca_bundle.crt yourname.crt yourname.key

使用以下命令创建 pk cs 12 版本:

openssl pkcs12 -export -out yourname.pfx -inkey yourname.key -in yourname.crt -certfile ca_bundle.crt
Run Code Online (Sandbox Code Playgroud)

然后您需要将其导入到易于在 Apache 中配置的密钥存储中

keytool -importkeystore -srckeystore yourname.pfx -srcstorepass yourpassword -srcstoretype pkcs12 -destkeystore yourkeystore.jks -deststoretype jks -deststorepass yourkeystorepassword
Run Code Online (Sandbox Code Playgroud)