我使用创建了一个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属性?
答案 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