SSL 设置 Spring Boot

问题描述 投票:0回答:4

我对 Spring Boot 中的 ssl 有一些疑问。 我有文件认证和私钥,扩展名为 .crt 和 .key。我怎样才能从他们那里获得像这样的 Spring Boot 设置的正确格式

    server.ssl.key-store-type=PKCS12
    server.ssl.key-store=classpath:keystore.p12
    server.ssl.key-store-password=password 
    server.ssl.key-alias=tomcat
spring spring-boot ssl-certificate
4个回答
2
投票

要将证书文件和私钥转换为 PKCS#12(.p12) 格式,请使用以下命令:

openssl pkcs12 -export -out certificate.p12 -inkey privateKey.key -in certificate.crt -certfile CACert.crt

请浏览以下链接,以供您在 Spring Boot 中处理 https 时参考。

  1. 在 Spring Boot 中启用 HTTPS
  2. 在 Spring Boot 中配置 HTTP 到 HTTPS 重定向

2
投票

我找到了解决方案。我使用这个命令得到了密钥库:

    openssl pkcs12 -export -in <mycert.crt> -inkey <mykey.key> -out keystore.p12 -name <alias>

并将密钥库添加到 application.properies

    #ssl
    server.port=8443
    server.ssl.enabled=true
    server.ssl.key-store-type=PKCS12
    **server.ssl.key-store=keystore/keystore.p12**
    server.ssl.key-store-password=password
    server.ssl.key-alias=alias

这是正确的配置。当我使用 classpath:keystore.p12 时它不起作用。也许是因为我使用 Spring Boot 2。然后我创建了外部文件夹并放入密钥库中。现在它正在工作。


0
投票

另一种选择:如果您没有(或不喜欢?)OpenSSL,https://keystore-explorer.org/(与 keytool 不同)可以将私钥+证书读取到任何类型的 Java 密钥库( PKCS12、JCEKS、JKS 等,但 PKCS12 通常是最好的),带有“导入密钥对”图标或菜单项。


0
投票

您可以设置扩展名为.crt和.key的证书和私钥。与 SpringBoot 3.1+ 中一样

server.port=443
server.ssl.enabled=true
server.ssl.certificate=file:/certs/tls.crt
server.ssl.certificate-private-key=file:/certs/tls.key
© www.soinside.com 2019 - 2024. All rights reserved.