gpt4 book ai didi

java - HttpsServer 处理程序未被调用

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:52 27 4
gpt4 key购买 nike

我正在使用以下 HttpsServer 来实现一个简单的安全服务器。首先,我创建了 keystore 并生成了 key 对,并且在 keystore 中有一个自签名证书。我正在使用以下代码来设置代码。

server = HttpsServer.create(new InetSocketAddress( SERVER_PORT), conversationCount);
SSLContext sslContext = SSLContext.getInstance("TLS");
char[] password= "XXXXX".toCharArray();
KeyStore ks = KeyStore.getInstance("JKS");
FileInputStream fis = new FileInputStream("server_keystore");
ks.load(fis, password);
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, password);
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(ks);
sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);

而我的服务器代码如下。

server.setHttpsConfigurator( getConfigurator(sslContext));
server.createContext("/", new RootRequestHandler());
server.setExecutor(threadPool);
server.start();
threadPool= Executors.newFixedThreadPool(conversationCount);
threadPool.execute(new Runnable() {
public void run() {
System.out.println("Asynchronous task");
}
});

我的配置器如下所示。

private HttpsConfigurator getConfigurator( SSLContext sslContext) {
return new HttpsConfigurator(sslContext) {
@Override
public void configure (HttpsParameters params) {
SSLEngine m_engine = sslContext.createSSLEngine();
final SSLContext context = getSSLContext();
final SSLParameters sslParams = context.getDefaultSSLParameters();
params.setNeedClientAuth(false);
params.setSSLParameters(sslParams);
params.setCipherSuites(m_engine.getEnabledCipherSuites());
params.setProtocols(m_engine.getEnabledProtocols());
}
};
}

每当我打开 https://localhost:8001/ “此网页不可用” 浏览器上显示“ERR_CONNECTION_CLOSED”错误。

我还用单元测试测试了代码,但测试失败并出现以下错误。

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

我知道每当我从浏览器调用服务器时,我都看到配置代码总是被调用而不是处理程序。即使调用了服务器,请求也不会定向到某些方式。我无法弄清楚我在这里做错了什么。希望有人能帮助我。

最佳答案

在代码中反复试验后,我发现代码没有任何问题,所以我更改了一直使用的键的类型。然后我意识到错误出在 key 上,并且出于某种原因,EC key 不可用,而 RSA key 可用。

关于java - HttpsServer 处理程序未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com