我使用以下方法创建了一个 CSR 文件
openssl req -nodes -newkey rsa:2048 -keyout yourdomain.key -out yourdomain.csr –sha256
它创建了一个 CSR 文件和一个 key 文件。我将 CSR 文件提交给了 CA。 他们用一个 yourdomain.crt 单个文件作为回应。
我尝试通过以下方式将 yourdomain.crt 导入我的 java 的 cacert:
keytool -import -keystore /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/security/cacerts -file ~/Desktop/user/yourdomain.crt -alias yourdomain
现在我对如何生成 keystore (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 路径,我相信它是来 self 的 jdk 的 cacerts,密码是我在提示输入时输入的密码。
现在如何为它生成一个 Keystore 文件?
我是否需要为 Spring boot 添加 server.ssl 属性?
最佳答案
首先,您必须将您的域.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
关于java - 如何将 SSL 证书添加到 cacerts 和 keystore ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56359266/