Eclipse 2022-12创建Quarkus项目遇远程主机终止握手错误
Eclipse创建Quarkus项目时SSL握手错误的解决方案
问题场景
使用JEE Eclipse 2022-12 (4.26.0),通过项目向导创建Quarkus项目,完成配置点击「完成」后,弹出错误提示:
创建Quarkus项目时遇到问题:Remote host terminated the handshake
错误日志详情:
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake at java.base/sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1714) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1513) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1420) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:401) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) at org.jboss.tools.quarkus.core.code.model.QuarkusModelRegistry.zip(QuarkusModelRegistry.java:176) at org.jboss.tools.quarkus.ui.wizard.CodeProjectWizardController.getZip(CodeProjectWizardController.java:67) at org.jboss.tools.quarkus.ui.wizard.CodeProjectWizardController.run(CodeProjectWizardController.java:55) at org.eclipse.core.runtime.jobs.Job$1.run(Job.java:166) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: java.io.EOFException: SSL peer shut down incorrectly at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:483) at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472) at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1505) ... 20 more
解决方案
1. 验证JDK版本兼容性
Quarkus对JDK版本有明确要求,优先使用JDK 11或17,避免使用过旧(如JDK 8)或未兼容的新版本JDK。
- 打开
Window > Preferences > Java > Installed JREs,确认当前Eclipse使用的JDK版本 - 若版本不符,添加兼容的JDK并设置为默认
2. 配置Eclipse网络代理
如果处于内网环境或需要代理访问外部资源:
- 打开
Window > Preferences > General > Network Connections - 将「Active Provider」设置为
Manual,分别配置HTTP和HTTPS的代理地址、端口 - 若代理需要认证,勾选「Proxy authentication」并填写账号密码
- 应用设置后重启Eclipse
3. 更新Quarkus插件
旧版本插件可能存在SSL握手相关的bug:
- 打开
Help > Eclipse Marketplace - 搜索「Quarkus」,找到已安装的插件点击「Update」
- 完成更新后重启Eclipse
4. 手动创建并导入项目
绕过Eclipse向导,直接生成项目后导入:
- 使用Quarkus官方项目生成工具,选择所需依赖和配置生成项目压缩包
- 解压压缩包后,在Eclipse中选择
File > Import > Existing Maven Projects,导入解压后的项目文件夹
5. 导入SSL证书到JDK信任存储
如果系统缺少Quarkus相关服务器的CA证书,会导致握手失败:
- 获取对应服务器的SSL证书文件
- 使用JDK的
keytool命令导入证书到信任存储:keytool -import -alias quarkus-server -file cert.crt -keystore $JAVA_HOME/jre/lib/security/cacerts - 默认信任存储密码为
changeit,执行命令后按提示确认导入
内容的提问来源于stack exchange,提问作者Learn-techie
相关产品推荐
相关产品推荐

