我拥有此证书/文件以便为我的应用程序启用 SSL:
我发现 Spring Boot 启用 HTTPS 需要这个属性:
server.port=8089
server.ssl.enabled=true
server.ssl.key-store=src/main/resources/keystore.p12
server.ssl.key-store-password=****
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat
但这不起作用。我现在的问题是我必须做什么才能让它发挥作用? https://abc.lehr.co.at 应该是 URL。
[编辑]
我创建了自己的密钥库 - 这样我得到了以下异常:
java.io.IOException: Alias name tomcat does not identify a key entry
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:596)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:534)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:363)
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:739)
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:472)
at org.apache.coyote.http11.Http11NioProtocol.start(Http11NioProtocol.java:81)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:986)
我的密钥库看起来像这样:
实际上我不知道要向嵌入式tomcat(Spring Boot)的密钥库导入什么。
要启用 SSL,您必须提供私钥,而不是受信任的证书。
在您的密钥库中,“tomcat”应列为 privatekeyentry 的别名,而不是 trustedcertentry。
您必须将私钥打包到具有指定别名的 PFX 文件或 P12 中。因此,加载材料后会从 keyStore 中相应地获取它。
使用此工具找出别名是什么:
keytool -list -storetype pkcs12 -keystore my_debug_keystore.p12 -storepass debug
server.port=8089
server.ssl.enabled=true
server.ssl.key-store=src/main/resources/keystore.p12
server.ssl.key-store-password=****
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat << This should be the alias of yourfile.12 if you have forgotten just create a new one and replace it>>
不要忘记添加
security.require-ssl=true <<Tell Spring Security (if used) to require requests over HTTPS>>
我建议您以 JKS 格式创建 KeyStore:
keytool -genkey -keyalg RSA -alias my_alias -keystore keystore.jks -storepass password -validity 360 -keysize 2048
然后添加配置:
server.port=8089
server.ssl.enabled=true
server.ssl.key-store=src/main/resources/keystore.jks
server.ssl.key-store-password=****
server.ssl.keyStoreType=JKS
server.ssl.keyAlias=my_alias
首先,您可以将 .pem 文件转换为 DER,然后生成密钥库。 请参阅https://stackoverflow.com/a/13992135/16358980如何执行此操作。
在您的 application.properties 中,将密钥库属性更改为您生成的密钥库文件:
server.ssl.key-store=<your-generated-keystore>
如果您在设置 SSL 时在 Spring Boot 版本 3.x 应用程序中遇到错误“java.lang.IllegalStateException:SSL 已启用但未配置信任材料”,则可能您错过了财产
server.ssl.bundle=服务器
此处的值“server”是捆绑包的名称,如下所示
spring.ssl.bundle.jks.server.key.alias=serverCert spring.ssl.bundle.jks.server.keystore.location=classpath:证书/server.key spring.ssl.bundle.jks.server.keystore.password=changeit spring.ssl.bundle.jks.server.keystore.type=PKCS12