由于工作需要 ,篇教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 用于负责接受客户端的连接请求,并将请求分配给一个处理队列去处理。
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文件转keystorejetty 使用的是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修改复制 添加服务到系统: 复制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的套件都不支持了 :(。 复制 目前我是在jetty的目录下直接启动的 ,其实不是太合适 ,正规点 ,是需要自己指定个目录,然后jetty_base指向这个目录 。 |
Excel表格突出显示包含某个字的单元格的方法教程Android 5.0的拍照相对之前的系统有提升吗?小米58.2.1系统的卓越表现(以稳定、快速和个性化为核心的全面升级)从零开始学习以希捷F3教程转表(详解希捷F3教程中的转表功能,助你轻松应对数据处理需求)如何通过无线路由器更改密码,保障网络安全(简明易懂的教程,轻松学会更改无线路由器密码)安卓刷机/升级常用专业名词解释联通大酷卡/小酷卡多少钱 联通大酷卡/小酷卡资实现三方通话的方法与技巧(提升通信效率,轻松实现三方通话)Windows10的原生Android应用支持仍有望在2021年推出Android L与Android 4.4截图对比云服务器b2b信息平台企业服务器源码库亿华云香港物理机网站建设