我以前从来没有这样做过,大多数教程都没有提到如何处理.crt文件。
我从GoDaddy购买了一个SSL证书,下载时选择了Tomcat作为平台。zip文件包含3个文件:
dea08asdjakjawl.crt
gd_bundle-g1-g1.crt
gdig.crt.pem
字符串
我在CentOS 7服务器上有一个正在运行的Sping Boot 应用程序(在端口80上,带有嵌入式Tomcat)。(服务器在Digital Ocean上运行,它有一个指定的域,并使用简单的http)
我想切换到https://something.com
所有的教程建议,我必须有一个.jks或.p12文件,但我不能转换的.crt文件,除此之外,我不知道哪个2 .crt文件是一个我应该转换为.jks/.p12。
我已经将此添加到我的应用程序.yaml中,但没有帮助:
server:
port: 443
ssl:
enabled: true
key-alias: server
key-store: "cert.crt"
key-store-password: "***"
型
如何使用此证书更改正在运行的Sping Boot 项目以接受HTTPS查询?
6条答案
按热度按时间slmsl1lt1#
因此,正确的程序如下:
我不得不使用Java密钥库从头重新创建CSR。
字符串
然后是一个新的CSR:
型
必须将其重新发送给证书提供商以生成新的.cer文件。因此,他们将上述2个.cer文件发送回我,“捆绑包”文件是中间的.cer,我需要这样添加:
型
然后,实际的“长名称”.cer文件如下所示:
型
那么这是一个可以转换为p12的东西,如下所示:
型
最后,application.properties需要额外的行,变成了这样:
型
而且它终于起作用了。
nnt7mjpx2#
我以前在使用Sping Boot 时遇到过这个问题。证书颁发机构给我发送了一个文件夹,其中包括:
Sping Boot 只理解.JKS /PKCS 12格式的证书文件。我们需要将.CRT文件转换为.JKS格式的文件。步骤如下:
1.将证书转换为PKCS 12格式
openssl pkcs12 -export -in <domain-name.crt> -inkey </path-to private.key> -name <alias-name> -out <domain-name.p12>
。这将生成.p12文件1.将PKCS 12文件导入到JKS密钥库
keytool -importkeystore -deststorepass <pass-phrase> -destkeystore keystore.jks -srckeystore <your .p12 file> -srcstoretype PKCS12
中。将创建扩展名为.jks的文件。1.将CA捆绑证书导入JKS密钥库
keytool -import -alias <alias-name> -trustcacerts -file <bundle.crt> -keystore keystore.jks
注意事项:
Private.key是您为CA生成的密钥,用于颁发证书。
pass-phrase是保护您私钥的密码。您提供的密码将创建private.key. For more info
最后将.jks文件复制到项目
/resource
文件夹并更新application.properies
文件。字符串
它应该会起作用。
6tr1vspr3#
您需要创建一个keystore和一个truststore(或使用java提供的默认truststore)。keystore将包含您的私钥和服务器证书。truststore将包含您的ca证书。要创建p12 keystore-
字符串
输入一个密码为keystore.配置这keystore在你的application. yaml.
对于信任库条目,如果使用java的默认信任库,则将您的ca证书添加到. jre/lib/security/cacc
型
或者您可以创建truststore,然后在应用程序中配置此truststore。yaml
所有的keytool命令,你可以很容易地在互联网上找到转换/创建/导入/导出/列表.
提供了3个文件,您可以检查哪个是哪个- 1。应该是您的证书2。应该是CA证书链
baubqpgj4#
如果你希望OpenSSL被添加到Sping Boot 中。
如果你已经安装了openssl软件,请按照以下步骤操作。//创建密钥和公共证书
字符串
//测试
型
//合并密钥和公共证书
型
//测试
型
在Spring Boot 的性能增加以下
型
reference
yfwxisqw5#
关于SpringBoot 3.1+
application.properties
字符串
8ehkhllq6#
如果使用Java,则使用
-keystore
参数使用keytool
命令生成私钥和CSR。我承认我不知道是否以及如何将现有的密钥导入到密钥库中(keytool
允许导入证书),但可能有一种方法。在最坏的情况下,使用密钥工具重新生成CSR并重新生成SSL/TLS证书-这应该不会产生额外的成本。