如何将SSL证书添加到cacerts和密钥库?

时间:2019-05-29 11:13:16

标签: java spring-boot ssl keytool

我使用创建了一个CSR文件

  

openssl req -nodes -newkey rsa:2048 -keyout yourdomain.key -out yourdomain.csr –sha256

它创建了一个CSR文件和一个密钥文件。我将CSR文件提交给了CA。 他们以单个 yourdomain.crt 单个文件作为响应。

我尝试通过以下方式将 yourdomain.crt 导入到我的Java的cacert中:

  

keytool-导入-keystore /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/security/cacerts-文件〜/ Desktop / user / yourdomain.crt -alias 您的域

现在我对如何生成密钥库( jks文件)感到困惑。我是否使用相同的 yourdomain.crt ? 我应该使用什么命令?

我的spring boot程序由

组成
 File trustStoreFile = new File(CACERTS_PATH);
        File keyStoreFile = new File(JKS_PATH);
        KeyStore ks = KeyStore.getInstance("JKS");
        ks.load(new FileInputStream(keyStoreFile), KEY_PASS.toCharArray());
        return SSLContextBuilder.create()
                .useProtocol("TLS")
                .loadKeyMaterial(ks, KEY_PASS.toCharArray())
                .loadTrustMaterial(trustStoreFile, TRUST_PASS.toCharArray())
                .build();

所以我需要一个cacerts路径,我相信这是我的jdk中的cacerts,密码是我在提示输入密码时键入的密码。

现在如何为它生成密钥库文件?

我是否需要为Spring Boot添加server.ssl属性?

1 个答案:

答案 0 :(得分:0)

首先,您必须将yourdomain.crt转换为.p12格式,为此,请在openssl终端上编写以下命令

pkcs12 -export -in yourdomain.crt -inkey yourdomain.key -chain -CAfile rootCA.pem -name “localhost” -out my.p12

在哪里, rootCA.pem =您必须创建它,然后在openssl上执行以下命令,

step 1 : genrsa -des3 -out rootCA.key 2048 and hit enter

 you will get rootCA.key file.

step 2 : req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

yourdomain.key =您必须通过在openssl上输入以下命令来创建它,

req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config
server.csr.cnf

在哪里,  server.csr.cnf文件包含此文件,您可以在其中写入

authorityKeyIdentifier = keyid, issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]

DNS.1 = localhost
IP.1=127.0.0.1
IP.2 = 192.168.1.XX
IP.3 = 192.XXX.XX.XXX
IP.4 = 192.XX.XX.XX and soon 

server.csr和server.key文件已创建。

完成所有步骤之后,您将获得.p12格式的文件,现在您必须将.p12格式的文件转换为keystore.jks文件格式,以在cmd上编写以下命令(在管理模式下打开)

Keytool -importkeystore -deststorepass MY-KEYSTORE-PASS -destkeystore my-keystore.jks 
-srckeystore my.p12 -srcstoretype PKCS12