我以前从来没有这样做过,而且大多数教程都没有提到如何处理.crt文件。
我在GoDaddy购买了SSL证书,下载时选择了Tomcat作为平台。 zip 文件包含 3 个文件:
dea08asdjakjawl.crt
gd_bundle-g1-g1.crt
gdig.crt.pem
我在 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: "***"
如何更改正在运行的 Spring Boot 项目以接受使用此证书的 HTTPS 查询?
最佳答案
所以正确的程序如下:
我不得不使用 Java Key Store 从头开始重新创建 CSR。
keytool -genkey -alias mydomain -keyalg RSA -keystore KeyStore.jks -keysize 2048
然后是一个新的 CSR:
keytool -certreq -alias mydomain -keystore KeyStore.jks -file mydomain.csr
必须将其重新发送给证书提供商以生成新的 .cer 文件。所以他们发回了我提到的 2 个 .cer 文件,“捆绑”文件是中间的 .cer,我需要像这样添加:
keytool -import -trustcacerts -alias intermediate -file intermediate.crt -keystore KeyStore.jks
然后是实际的“长名称”.cer 文件,如下所示:
keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore KeyStore.jks
然后这是可以像这样转换为 p12 的东西:
keytool -importkeystore -srckeystore <MY_KEYSTORE.jks> -destkeystore <MY_FILE.p12> -srcstoretype JKS -deststoretype PKCS12 -deststorepass <PASSWORD_PKCS12> -srcalias <ALIAS_SRC> -destalias <ALIAS_DEST>
最后 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
它终于开始工作了。
关于spring - 将 .crt 添加到 Spring Boot 以启用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46670046/