Java vertx HTTPS(SSL/TLS)服务器不工作。我无法访问https://localhost

Java vertx HTTPS(SSL/TLS)服务器不工作。我无法访问https://localhost,java,ssl,https,tls1.2,vert.x,Java,Ssl,Https,Tls1.2,Vert.x,我已经在vert.x中创建了HTTPS服务器 vertx.createHttpServer( 新的HttpServerOptions() .setSsl(真) .setKeyStoreOptions(新的JksOptions() .setPath(“路径/到/密钥库”) .setPassword(“密码”) ) ).requestHandler((HttpServerRequest请求)->{ System.out.println(“访问”); req.response().putHeader(

我已经在
vert.x
中创建了HTTPS服务器

vertx.createHttpServer(
新的HttpServerOptions()
.setSsl(真)
.setKeyStoreOptions(新的JksOptions()
.setPath(“路径/到/密钥库”)
.setPassword(“密码”)
)
).requestHandler((HttpServerRequest请求)->{
System.out.println(“访问”);
req.response().putHeader(“内容类型”,“文本/html;字符集=utf-8”);
req.response().end(“你好,世界!”);
// ...
}).listen(80,“本地主机”);
我已经用
keytool
创建了密钥库

keytool -genkeypair -keystore keystore -storetype jks
我成功地部署了verticle。但是服务器没有响应

获取任何信息都不会带来任何好处。甚至日志也没有打印出来

怎么了

我尝试过以下几种选择

vertx.createHttpServer(
新的HttpServerOptions()
.setSsl(真)
.setKeyStoreOptions(新的JksOptions()
.setPath(“路径/到/密钥库”)
.setPassword(“密码”)
)
//.setUseAlpn(真)
//.setTrustOptions(新JksOptions()
//.setPath(“C:/recove/keystore”)
//.setPassword(“Xs41Kipid$ps15”)
// )
//.setClientAuthRequired(false)
//.setClientAuth(ClientAuth.NONE)
//.addEnabledSecureTransportProtocol(TCPSSLOptions.DEFAULT_ENABLED_SECURE_TRANSPORT_PROTOCOLS.get(1))
//.添加的安全传输协议(“TLSv1.3”)
//.setEnabledSecureTransportProtocols(TCPSSLOptions.DEFAULT_ENABLED_SECURE_TRANSPORT_PROTOCOLS)
).requestHandler((HttpServerRequest请求)->{
// ...
}).listen(80,“本地主机”);

但是代码给出了运行时异常。

下面的代码对我来说很有用:

    JksOptions keyOptions = new JksOptions();
    keyOptions.setPath("path-to-your/keystore.jks");
    keyOptions.setPassword("changeit");

    vertx.createHttpServer(
      new HttpServerOptions()
        .setSsl(true)
        .setKeyStoreOptions(keyOptions)
    ).requestHandler( (HttpServerRequest req) -> {
      System.out.println("Access.");
      req.response().putHeader("Content-Type", "text/html; charset=utf-8");
      req.response().end("Hello SSL world!");
    }).listen(8443, "localhost");

尝试使用
setLogActivity(true)
并使用日志库查看调试日志。您希望在哪里打印日志?你说的“什么都不给”到底是什么意思?提供的源代码不应作为对SSL/TLS请求的响应而提供任何内容。@I setLogActivity(true)给出了此错误。null:警告:在类型“io.vertx.codegen.annotations.VertxGen”中找不到批注方法“concrete()”:未找到io.vertx.codegen.annotations.VertxGen的类文件C:\recove\recove.java:58:错误:找不到symbol.setLogActivity(true)^symbol:method setLogActivity(布尔)位置:class io.vertx.core.http。HttpServerOptions@tmarwen如果没有SSL/TLS设置,此代码可以很好地响应浏览器的本地主机访问。但对于SSL/TLS设置,它什么也不提供。即使
System.out.println(“访问”)
也不会打印。如果服务器提供https/ssl,它也应该侦听端口443。当使用https地址时,Web浏览器访问服务器端口443。或者您是否尝试访问
https://localhost:80