如何从.pem文件向Java Spring添加.p12密钥?

问题描述

我有这3个文件

  • certificate.crt
  • certificate.pem
  • certificate.key

certificate.crt包含:

-----BEGIN CERTIFICATE-----
MIIGmzCCBYOgAwIBAg etc
-----END CERTIFICATE-----

certificate.key包含:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCA bla bla
-----END RSA PRIVATE KEY-----

certificate.pem更复杂,它具有:

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgk etc etc
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIGmzCCBYOgAwIBAg etc
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIGBjCCA+6gAwIBAgIR...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdzCCBF+gAwIBAgIQ...
-----END CERTIFICATE-----

因此,certificate.pem包含1个私钥(与certificate.key不同)和3个证书(第一个与certificate.crt相同)

有了这些文件,我如何才能将.p12文件插入到Java Spring应用程序中?

我已经尝试过使用openssl将.pem文件转换为.p12文件,但是当我转到https // mydomain.com时,出现了一条不安全的ssl消息。

解决方法

我知道为时已晚,但以防万一,将来有人会需要它。

sudo openssl pkcs12 -export -in certificate.crt -inkey certificate.key -out keystore.p12

请注意,在大多数情况下,证书文件是受保护的,并且仅允许 root / sudo 用户进行读取操作。要验证这样做 -> ls -al

-rw----r-- 1 root root 5717 Jun 13 21:49 certificate.crt 使用 root / sudo 权限执行操作或使用 chmod/chown 更改权限。