jetty下配置https

本文详细介绍了如何在Jetty服务器上配置HTTPS,包括生成证书、配置客户端和服务器间的双向SSL认证,以及修改Jetty启动配置文件start.ini的方法,确保安全的HTTPS连接。

 

1:生成证书

使用java自带的keytool命令

 

第一步:使用java命令生成keystore文件

 

keytool -genkey -alias boyaServer -keypass boya2017-keyalg RSA -keysize 1024 -validity 365 -keystore boyaServer.keystore-storepass boya2017

 

 

 

第二步:为客户端生成证书

为浏览器生成证书,以便让服务器来验证它。

 

keytool -genkey -alias boyaClient -keypass boya2017-keyalg RSA -keysize 1024 -validity 365 -storetype PKCS12 -keystoreboyaClient.p12 -storepass boya2017

 

 

第三步:让服务器信任客户端证书

1、由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令

 

keytool -export -alias boyaClient -keystore boyaClient.p12-storetype PKCS12 -keypass boya2017 -file client.cer

 

2、将client文件导入到服务器的证书库,添加为一个信任证书:

 

keytool -import -v -file client.cer -keystoreboyaServer.keystore -storepass boya2017

 

 

完成之后通过list命令查看服务器的证书库,

可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:

keytool -list -v -keystore boyaServer.keystore

 

 

第四步:让客户端信任服务器证书

 

由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览器的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:

 

keytool -keystore boyaServer.keystore -export -aliasboyaServer -file server.cer

 

双击server.cer文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。打开浏览器 - 工具 - internet选项-内容- 证书-把中级证书颁发机构里的www.localhost.com(该名称即时你前面生成证书时填写的名字与姓氏)证书导出来-再把导出来的证书导入 受信任的根颁发机构 就OK了。

 

或者使用浏览器导入boyaClient.p12证书

以谷歌为例

设置 ----  高级 ----- 管理证书 ----导入

 

2:jetty配置

主要是修改jetty启动的配置文件 start.ini文件

加入如下的信息:

 

# ---------------------------------------

# Module: jstl

--module=jstl

--module=ssl

 

jetty.ssl.port=8445

jetty.sslContext.trustStorePath=keystore_boya

jetty.sslContext.keyStorePath=keystore_boya

jetty.sslContext.keyStorePassword=boyaht

OBF:1vfx1vnq1w9j1w871vnc1vgx

 

jetty.sslContext.keyManagerPassword=boyaht

 

jetty.server.dumpBeforeStop=

etc/jetty-ssl.xml

etc/jetty-https.xml


说明:

证书的路径是以start.jar为相对路径的起点.当然也可以自定义路径,至于密码,可以选择以明文的形式写在文件中,也可以以加密的形式写在文件中,当然建议还是写秘文,需要注意的情况是迷文需要加入OBF:的前缀.

OBF:1vfx1vnq1w9j1w871vnc1vgx


生成OBF迷文的方式,使用jetty.util.security.Password 的工具类即可.具体方法如下:

b java -cp jetty-util-9.4.6.v20170531.jarorg.eclipse.jetty.util.security.Password mima

 

 


修改完成之后,重启jetty的脚本即可,另外如果项目只是以https访问的话,可以把start.ini的配置文件中http的模块注释掉,而只开启https服务.



 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值