从 spring-boot 版本 3.0.8 更新到 3.1.0 或 3.1.1 后,应用程序不再从商店加载 SSL 证书。
配置:符合 FIPS 标准的配置,具体如下: https://access.redhat.com/documentation/en-us/openjdk/17/html/configuring_openjdk_17_on_rhel_with_fips/openjdk-default-fips-configuration#key_store
应用程序是独立的 tomcat 嵌入式服务。
配置文件内容:
/路径/到/application.properties
......为简洁起见
安全.需要 SSL = true
服务器.ssl.密钥存储类型=PKCS11
服务器.ssl.key-store-密码=passwd
server.ssl.key-alias=服务器证书
服务器.ssl.协议=TLS
服务器.ssl.启用协议=TLSv1.2
......为简洁起见
/etc/alternatives/jre_17/conf/security/java.security
......为简洁起见
security.provider.12=SunPKCS11 /etc/alternatives/jre_17/conf/security/nss.cfg
......为简洁起见
/etc/alternatives/jre_17/conf/security/nss.cfg
名称 = NSSfips
nssLibraryDirectory = /usr/lib64
nssSecmodDirectory = /etc/pki/certs/nss
nssModule = fips
nssDbMode = readOnly
nssUseSecmod = true
此配置已运行近 4 年,没有出现问题。我知道有一个更新支持 SSL 捆绑包,但它也表示当前的 server.ssl 支持将继续运行。
我现在需要在配置中更改一些内容才能使其加载证书吗?
纠正步骤:我尝试通过启用调试模式和使用进程跟踪实用程序来隔离证书的加载。但是它似乎完全跳过了配置并在没有证书的情况下启动应用程序。日志中没有错误。
我本来打算在 Github/spring-boot 存储库中发布一个问题,它说先在这里尝试。