Я пытаюсь установить SSL-соединение между сервером и клиентом, используя vertx.Я создал сертификат сервера и сохранил его в хранилище ключей, извлек сертификат из хранилища ключей и импортировал его в хранилище доверенных сертификатов.Но когда я пытаюсь подключить сервер к клиенту, получаю сообщение об ошибке ниже: javax.net.ssl.SSLException: получено фатальное предупреждение: certificate_unknown
Сгенерированные keystore.jks и truststore.jks, я сохранил его в отдельной папкеи я ссылаюсь на это местоположение в моем коде.
Используя vertx, который я сделал ниже, код сервера:
HttpServer server =vertx.createHttpServer(new HttpServerOptions().setSsl(true).setKeyStoreOptions(
new JksOptions().setPath("C:\\Desktop\\keystore.jks").setPassword("xxxxx")
));
// Creating HttpServer
server.requestHandler(router::accept).listen((int) configs.get(Constants.PORT));
код клиента:
WebClientOptions options = new WebClientOptions();
options.setKeepAlive(config().getBoolean("webClient.keepAlive", true));
options.setMaxPoolSize(config().getInteger("webClient.maxPoolSize", 200));
options.setSsl(true);
options.setTrustStoreOptions(new JksOptions()
.setPath("C:/Desktop/truststore.jks")
.setPassword("xxxxx")
);
WebClient webClient = WebClient.create(vertx, options);
сторона сервера:
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLException: Received fatal alert: certificate_unknown
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:459)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
на стороне клиента:
Caused by: java.security.cert.CertificateException: No name matching localhost found
at sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:231)
at sun.security.util.HostnameChecker.match(HostnameChecker.java:96)
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1521)
at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:528)