一篇教会你用Jetty配置Https

  发布时间:2025-12-07 20:23:57   作者:玩站小弟   我要评论
由于工作需要,需要测试Jetty配置HTTPS的解析情况,本篇记录下Jetty下的HTTPS的配置。一、简单介绍1.1 Jetty介绍Jetty 是一个Servlet引擎,是一个可扩展和非常灵活的应用 。

由于工作需要,篇教y配需要测试Jetty配置HTTPS的篇教y配解析情况,本篇记录下Jetty下的篇教y配HTTPS的配置 。

一、篇教y配简单介绍

1.1 Jetty介绍

Jetty 是篇教y配一个Servlet引擎 ,是篇教y配一个可扩展和非常灵活的应用服务 。它有一个基本数据模型,篇教y配这个数据模型就是篇教y配 Handler(处理器) ,云计算所有可以被扩展的篇教y配组件都可以作为一个 Handler ,添加到 Server 中 ,篇教y配Jetty 就是篇教y配帮你管理这些 Handler。 下图是篇教y配 Jetty 的基本架构图,整个 Jetty 的篇教y配核心组件由 Server 和 Connector 两个组件构成 ,整个 Server 组件是篇教y配基于 Handler 容器工作的 ,它类似与 Tomcat 的源码下载篇教y配 Container 容器 。 Connector 用于负责接受客户端的连接请求,并将请求分配给一个处理队列去处理。

1.2 Jetty优点

Jetty的架构简单,可以按需加载组件 ,减少不需要的组件,减少服务器内存开销 。

Jetty 采用异步的Servlet ,可以同时处理大量连接 ,且长时间保持连接状态 。亿华云

Jetty 采用NIO在处理I/O请求更占优势,处理静态资源性能更好。

Jetty 嵌入到应用中,使一个普通应用快速支持http服务  。

二、Jetty 配置和使用

Jetty最新版本为 :

jetty-distribution-9.4.29.v20200521.tar.gz ,和以前版本使用方法稍微有所不同 。

2.1 添加默认启动模块

默认情况下 ,https和日志模块都没有开启,运行jetty连个日志都没有 ,实在是不合理。

复制#添加日志模块

java -jar start.jar --add-to-start=console-capture

#添加https 模块

java -jar start.jar --add-to-start=https

# https模块要依赖ssl模块

java -jar start.jar --add-to-start=ssl1.2.3.4.5.6.

以上命令在jetty_home目录运行,更改start.ini配置文件。建站模板

复制## Connector host/address to bind to

jetty.ssl.host=0.0.0.0

## Connector port to listen on

jetty.ssl.port=7443

jetty.sslContext.keyStorePath=etc/keystore

jetty.sslContext.trustStorePath=etc/keystore1.2.3.4.5.6.7. 2.2 启动命令

前台启动  :

复制java -jar start.jar1.

后台启动命令 :

复制./bin/jetty.sh start1.

报错信息如下 :

复制2020-05-25 14:35:52.228:WARN:oejx.XmlConfiguration:main:

java.security.PrivilegedActionException: java.io.IOException: Is a directory

at java.security.AccessController.doPrivileged(Native Method)1.2.3.

配置的key文件错误,使用keystore文件试试 ,转换方法如下 :

2.3 pem文件转keystore

jetty 使用的是keystore文件,需要进行转换 ,转命令:

复制#需要输入密码 假设输入123456

openssl pkcs12 -export -in server-cert.pem -inkey server-key.pem -out out.pk12

#转成keystore文件

keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore sh.keystore -srckeystore out.pk12 -srcstoretype PKCS12 -srcstorepass 123456 1.2.3.4.

转换密码:

复制java -cp lib/jetty-util-9.4.29.v20200521.jar org.eclipse.jetty.util.security.Password 123456

2020-05-25 15:06:01.084:INFO::main: Logging initialized @114ms to org.eclipse.jetty.util.log.StdErrLog

123456

OBF:19iy19j019j219j419j619j8

MD5:e10adc3949ba59abbe56e057f20f883e1.2.3.4.5.

配置更改start.ini文件:

复制## Keystore file path (relative to $jetty.base)

jetty.sslContext.keyStorePath=etc/keystore/sh.keystore

## Truststore file path (relative to $jetty.base)

jetty.sslContext.trustStorePath=etc/keystore/sh.keystore

## Keystore password

jetty.sslContext.keyStorePassword=OBF:19iy19j019j219j419j619j81.2.3.4.5.6.

配置后继续报错:

复制2020-05-25 15:12:39.532:INFO:oejus.SslContextFactory:main: x509=X509@1786dec2(1,h=[192.168.63.1],w=[]) for Server@6acdbdf5[provider=null,keyStore=file:///home/miaohq/soft/jetty/etc/keystore/sh.keystore,trustStore=file:///home/miaohq/soft/jetty/etc/keystore/sh.keystore]

2020-05-25 15:12:39.573:WARN:oejx.XmlConfiguration:main:

java.security.PrivilegedActionException: java.security.UnrecoverableKeyException: Cannot recover key1.2.3.

到这里面才发现是不是密钥套件没配置  ,所以提取不了key?所以下面配置下 。

三、配置https和ssl配置

3.1 配置jetty-ssl-context.xml修改

复制 /

<Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.sslContext.trustStorePath" deprecated="jetty.truststore" default="etc/keystore/sh.keystore"/></Set>1.2.3.4. 3.2 配置jetty-ssl.xml修改 复制<Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="7443" /></Set>1. 3.3 通过系统命令启停jetty

添加服务到系统:

复制cp bin/jetty.sh /etc/init.d/jetty

#jetty的安装目录

echo JETTY_HOME=`pwd` > /etc/default/jetty

#jetty的服务器租用web目录

echo "JETTY_BASE=/opt/jetty-base" >> /etc/default/jetty1.2.3.4.5.

启动命令 :

复制service jetty start1.

###3.4 配置Tls版本和支持密钥套件 更改jetty-ssl-context.xml 目前这个里面RSA的套件都不支持了:(。

复制

TLSv1.2

TLS_RSA_WITH_AES_128_CBC_SHA256

TLS_RSA_WITH_AES_128_CBC_SHA

TLS_RSA_WITH_AES_128_GCM_SHA256

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

1.2.3.4.5.6.7.8.9.10.11.12.13.14. 3.4 注意

目前我是在jetty的目录下直接启动的 ,其实不是太合适 ,正规点 ,是需要自己指定个目录,然后jetty_base指向这个目录。

  • Tag:

相关文章

  • 美国邮政服务(USPS)被冒名,用于网络钓鱼攻击

    infosecurity网站消息,近日,一项研究分析揭示了针对美国邮政服务USPS)的网络钓鱼和网络诈骗攻击的严重程度,尤其是在节假日期间。这项研究由Akamai安全研究人员利用匿名全球DNS查询日志
    2025-12-07
  • 相等有时候也不安全!你知道吗?

    哈喽,大家好,我是指北君。最近世界杯看了几场球赛,克罗地亚淘汰巴西, 摩洛哥淘汰葡萄牙。两场都非常精彩,克罗地亚的坚韧令人佩服,绝境逆袭。总之这一届世界杯绝对会影响以后足球的战术打法。言归正传哈,最近
    2025-12-07
  • 应对挑战!元宇宙可能成为 2023 年网络攻击的主要途径

    随着成熟和新兴的面向消费者的恶意网络攻击增加,企业安全团队在 2023 年需要应对的许多挑战。卡巴斯基的研究人员着眼于2023年网络攻击格局可能发生的演变,预计攻击者将扩大使用他们当前的许多策略,同时
    2025-12-07
  • 2023 年三月头号恶意软件:Emotet 开展全新攻击方式

    2023 年 4 月,全球领先的网络安全解决方案提供商 Check Point® 软件技术有限公司纳斯达克股票代码:CHKP)发布了其 2023 年 3 月《全球威胁指数》报告。上月,研究人员发现了新
    2025-12-07
  • 超四分之一企业禁止员工使用生成式人工智能

    根据思科2024年数据隐私基准研究,超过四分之一(27%)的组织出于隐私和数据安全风险的考虑,暂时禁止在员工中使用生成式人工智能。大多数组织还对此类工具实施了控制。近三分之二(63%)的受访者对可以输
    2025-12-07
  • 如何实现OT网络安全?

    在大流行后的复苏世界中,互联性和数字化继续以前所未有的速度加速。随着先进技术的渗透和工业设备的互联,组织越来越依赖运营技术(OT)来保持业务运营和竞争力。此外,在许多情况下,这些进步已经成为推动新收入
    2025-12-07

最新评论