1. 首页 > 快讯

如何配置 Jetty HTTPS

大家好,今天来为大家解答如何配置 Jetty HTTPS这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

由于工作需要,需要测试Jetty的HTTPS配置的解析。本文记录Jetty下的HTTPS配置。

一、简单介绍

1.1 Jetty介绍

Jetty 是一个Servlet 引擎,也是一个可扩展且非常灵活的应用程序服务。它有一个基本的数据模型,就是Handler(处理器)。所有可扩展的组件都可以作为Handler添加到Server中。 Jetty 帮助您管理这些处理程序。下图是Jetty的基本架构图。 Jetty的核心组件由两个组件组成:Server和Connector。整个Server组件是基于Handler容器来工作的,类似于Tomcat的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和log模块没有启用,运行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=ssl 在jetty_home目录下运行上述命令,更改start.ini配置文件。

## 要绑定的连接器主机/地址

jetty.ssl.host=0.0.0.0

## 用于监听的连接器端口

码头.ssl.端口=7443

jetty.sslContext.keyStorePath=etc/keystore

jetty.sslContext.trustStorePath=etc/keystore

2.2 启动命令

前台启动:

java -jar start.jar 后台启动命令:

./bin/jetty.sh启动错误信息如下:

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

java.security.PrivilegedActionException: java.io.IOException: 是一个目录

java.security.AccessController.doPrivileged(Native Method)处配置的密钥文件错误。尝试使用密钥库文件。转换方法如下:

2.3 pem文件转keystore

jetty使用keystore文件,需要转换。转换命令:

#需要输入密码,假设输入123456

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

#转换为密钥库文件

keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore sh.keystore -srckeystore out.pk12 -srcstoretype PKCS12 -srcstorepass 123456转换密码:

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: 日志记录初始化@114ms 到org.eclipse.jetty.util.log.StdErrLog

123456

OBF:19iy19j019j219j419j619j8

MD5:e10adc3949ba59abbe56e057f20f883e配置更改start.ini文件:

## 密钥库文件路径(相对于$jetty.base)

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

## 信任库文件路径(相对于$jetty.base)

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

## 密钥库密码

配置jetty.sslContext.keyStorePassword=OBF:19iy19j019j219j419j619j8后,继续报错:

2020-05-25 15:12:39.532:INFO:oejus.SslContextFactory:main: x509=X509@1786dec2(1,h=[192.168.63.1],w=[]) 为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: 无法恢复密钥到了这里才发现密钥套件没有配置,所以无法提取密钥?所以配置如下。

三、配置https和ssl配置

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

/

/

3.2 配置jetty-ssl.xml修改

3.3 通过系统命令启停jetty

向系统添加服务:

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

#jetty的安装目录

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

#jetty 的网络目录

echo 'JETTY_BASE=/opt/jetty-base' /etc/default/jetty 启动命令:

service jetty start###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

3.4 注意

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

OK,本文到此结束,希望对大家有所帮助。

用户评论

毒舌妖后

终于有一个教程专门教我如何配置https了!

    有16位网友表示赞同!

命里缺他

Jetty我一直听说过,但是还没实际上手过,这篇博客正好可以给我一些启发。

    有12位网友表示赞同!

未来未必来

希望这个教程详细讲解每一个步骤,这样小白也能跟着学得明白。

    有11位网友表示赞同!

蹂躏少女

HTTPS认证很重要,我的网站迟早要配置的啊!

    有12位网友表示赞同!

走过海棠暮

看到51CTO发布的文章,总是有保证的质量。

    有5位网友表示赞同!

冷眼旁观i

我之前用Tomcat 配置了https,听说Jetty也蛮好用的。准备学习一下看看哪一个更适合我。

    有17位网友表示赞同!

巷陌繁花丶

现在很多网站都使用HTTPS了吧?配置起来复杂吗?

    有11位网友表示赞同!

追忆思域。

这个教程刚好能解决我的难题,真期待可以看出来详细的步骤!

    有18位网友表示赞同!

淡抹丶悲伤

希望文章里有代码示例,这样更容易理解。

    有13位网友表示赞同!

我就是这样一个人

我已经知道Jetty是什么了,但是怎么配置HTTPS我还没摸到头脑...

    有19位网友表示赞同!

安之若素

学习完这个教程,是不是就可以自己架设一个安全的网站了?

    有12位网友表示赞同!

算了吧

51CTO的文章质量一直不错,相信这篇关于Jetty配置HTTPS的教程也相当靠谱。

    有8位网友表示赞同!

寂莫

配置HTTPS其实蠻重要的,它能让网站更加安全可信。这篇文章看起来很有用!

    有18位网友表示赞同!

麝香味

我的网站现在正在使用HTTP协议,需要考虑一下升级为HTTPS了...

    有10位网友表示赞同!

清原

这个教程会不会用到SSL证书?我也需要学习怎么申请一个证书。

    有5位网友表示赞同!

你瞒我瞒

我对Jetty还是比较熟悉的,但是配置HTTPS这块不太懂。希望能学到很多新知识!

    有19位网友表示赞同!

幸好是你

配置HTTPS确实是一项必要的技能,希望这篇教程能让我更深入地了解这个过程。

    有11位网友表示赞同!

素婉纤尘

学习完了这个教程,我就可以自己打造一个安全可靠的网站了!

    有10位网友表示赞同!

眼角有泪°

Jetty是一个比较轻量级的web容器,配置HTTPS应该也会比较简单吧?

    有8位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7951.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666