Mac*_*rik 6 ssl https spring tomcat spring-boot
我以前从未做过,而且大多数教程都没有提到如何处理.crt文件。
我从GoDaddy购买了SSL证书,并在下载时选择了Tomcat作为平台。压缩文件包含3个文件:
dea08asdjakjawl.crt
gd_bundle-g1-g1.crt
gdig.crt.pem
Run Code Online (Sandbox Code Playgroud)
我在CentOS7服务器上有一个正在运行的Spring Boot应用程序(在具有嵌入式Tomcat的端口80上)。(服务器在Digital Ocean上运行,它具有分配的域,并且可以使用简单的http)
我想将其切换到https://something.com
所有教程都建议我为此必须具有.jks或.p12文件,但无法将.crt文件转换为该文件。此外,我不确定2 .crt文件中的哪个应转换为.jks / .p12。
我已将此添加到我的application.yaml中,但没有帮助:
server:
port: 443
ssl:
enabled: true
key-alias: server
key-store: "cert.crt"
key-store-password: "***"
Run Code Online (Sandbox Code Playgroud)
如何使用此证书将正在运行的Spring Boot项目更改为接受HTTPS查询?
所以正确的程序如下:
我不得不从头开始重新创建 CSR,而是使用 Java Key Store。
keytool -genkey -alias mydomain -keyalg RSA -keystore KeyStore.jks -keysize 2048
Run Code Online (Sandbox Code Playgroud)
然后是一个新的 CSR:
keytool -certreq -alias mydomain -keystore KeyStore.jks -file mydomain.csr
Run Code Online (Sandbox Code Playgroud)
必须将其重新发送给证书提供者以生成新的 .cer 文件。所以他们给我发回了提到的 2 个 .cer 文件,“捆绑”一个是中间的 .cer,我需要像这样添加:
keytool -import -trustcacerts -alias intermediate -file intermediate.crt -keystore KeyStore.jks
Run Code Online (Sandbox Code Playgroud)
然后是实际的“长命名”.cer 文件,如下所示:
keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore KeyStore.jks
Run Code Online (Sandbox Code Playgroud)
然后这是可以像这样转换为 p12 的东西:
keytool -importkeystore -srckeystore <MY_KEYSTORE.jks> -destkeystore <MY_FILE.p12> -srcstoretype JKS -deststoretype PKCS12 -deststorepass <PASSWORD_PKCS12> -srcalias <ALIAS_SRC> -destalias <ALIAS_DEST>
Run Code Online (Sandbox Code Playgroud)
最后 application.properties 需要额外的行并变成这样:
server.port=443
server.ssl.enabled=true
security.require-ssl=true
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=domain
server.ssl.key-password=password
Run Code Online (Sandbox Code Playgroud)
它终于开始工作了。
小智 8
我之前在使用 Spring Boot 时遇到过这个问题。证书颁发机构向我发送了一个文件夹,其中包含:
Spring Boot 仅理解 .JKS / PKCS12 中的证书文件。我们需要将.CRT文件转换为.JKS格式文件。步骤如下:
openssl pkcs12 -export -in <domain-name.crt> -inkey </path-to private.key> -name <alias-name> -out <domain-name.p12>。这将生成一个 .p12 文件keytool -importkeystore -deststorepass <pass-phrase> -destkeystore keystore.jks -srckeystore <your .p12 file> -srcstoretype PKCS12。将创建一个扩展名为 .jks 的文件。keytool -import -alias <alias-name> -trustcacerts -file <bundle.crt> -keystore keystore.jks笔记:
Private.key是您为 CA 生成的密钥,用于颁发证书。
pass-phrase是保护您的私钥的密码。您提供的信息将创建 private.key。欲了解更多信息
最后将 .jks 文件复制到您的项目/resource文件夹并更新application.properies文件。
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=<pass-phrase>
server.ssl.key-alias=<alias-name>
Run Code Online (Sandbox Code Playgroud)
它应该有效。
| 归档时间: |
|
| 查看次数: |
9401 次 |
| 最近记录: |