Java SSL连接和UNKNOWN SERVER CERTIFICATE警告



我使用Netty进行异步http请求。当请求的url是https时,我会将其添加到管道中:

SSLEngine engine = SecureChatSslContextFactory.getClientContext().createSSLEngine();
engine.setUseClientMode(true);
pipeline.addLast("ssl", new SslHandler(engine));

这很好,我得到了响应和所有内容,但输出中会写一条警告,说:未知服务器证书,例如,如果我发出请求:https://www.google.com这就是我得到的:

UNKNOWN SERVER CERTIFICATE: CN=www.google.com, O=Google Inc, L=Mountain View, ST=California, C=US

由于一切仍在运行,这对我来说不是什么大问题,但有两件事我想知道:

  1. 为什么我会收到警告?谷歌的证书是一个"众所周知"的证书,浏览器似乎没有对此发出警告。我应该告诉ssl引擎在哪里查找证书吗?

  2. 我能在运行时以某种方式捕捉到这个警告而不是打印出这个消息吗?

谢谢。

检查以确保"信任存储"正确标识给Netty。在执行此操作时,您可能需要考虑添加${JAVA_HOME}/jre/lib/security/cacerts作为受信任存储。

如果没有配置,您可能无法通过SSL 连接

Dave,

看看这个线程中的代码示例:使用双向SSL握手(客户端和服务器证书)设置Netty

我认为这将帮助您设置密钥库和信任库。

相关内容

  • 没有找到相关文章

最新更新