我正在尝试使用服务器端的自签名证书通过本地主机中的 https 访问在 Netty 上运行的 Spring Boot 应用程序。
我的application.properties
看起来像这样:
server.ssl.enabled=true
server.ssl.key-store-type=JKS
server.ssl.key-store=test.jks
server.ssl.key-store-password=password
server.ssl.key-alias=testkey
我通过以下方式生成了 keystore :
keytool -genkeypair -alias testkey -keyalg RSA -keysize 4096 -keystore test.jks -validity 36500
我收到以下错误:
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:472) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
我尝试将证书导入到 JDK 信任库,甚至导入到操作系统,但仍然相同。一位消息人士建议将 key 别名命名为“testkey”以使其正常工作,但这也不起作用。由于 Google 中没有其他提及此错误的信息,我希望您能提供帮助。
最佳答案
我设法通过使用 https://github.com/FiloSottile/mkcert 生成本地有效的证书来解决问题
关于ssl - Spring WebFlux Netty SSL 与自签名证书错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56401737/