Spring Boot本地启用HTTPS启动报BadPaddingException求助
问题排查与解决步骤
1. 修复密钥库生成命令(核心问题)
你当前的keytool生成命令把生成密钥对和查看密钥库的参数混在一起了,这会导致生成的suez_keystore.p12无效,直接引发后续的解密填充错误。正确的生成命令应该是:
keytool -genkeypair -alias msmith_local_suezz -keyalg RSA -keysize 4096 -storetype PKCS12 -keystore suez_keystore.p12 -validity 3650 -storepass <你的密钥库密码>
执行时替换<你的密钥库密码>为实际值,全程不要加多余的-list或重复的-keystore参数。
2. 修正Spring Boot配置的属性前缀
你的配置缺少server.ssl.前缀,Spring Boot无法识别这些属性,相当于没配置密码,所以不管密码对错都会报同样的填充错误。正确配置如下:
server.port = 443 server.ssl.key-store = classpath:suez_keystore.p12 server.ssl.key-store-password = <你的密钥库密码> server.ssl.key-store-type = PKCS12 server.ssl.key-alias = msmith_local_suezz server.ssl.key-password = <你的密钥库密码>
注意:确保suez_keystore.p12放在src/main/resources目录下,这样classpath:前缀才能正确定位文件。
3. 验证修复后的密钥库
重新生成密钥库后,用以下命令确认有效性:
keytool -list -keystore suez_keystore.p12 -storepass <你的密钥库密码>
能正常列出条目则说明密钥库生成正确。
额外注意点
- 443是系统默认HTTPS端口,Windows/Linux下启动应用可能需要管理员权限,不想用的话可以改成8443这类非特权端口;
- 密钥库密码和密钥密码保持一致没问题,但后续修改其中一个时,配置要同步更新。
内容的提问来源于stack exchange,提问作者Mark SmithAMC
相关产品推荐
相关产品推荐

