在Jetty中快速搭建SSL

翻译:叩丁狼教育吴嘉俊

你是否遇到过需要快速搭建SSL环境的需求,但是感觉比较迷糊?我敢肯定,你不是一个人,我也遇到过这个麻烦,下面我简单分享一下我的解决方案。

下面我会分享如何在Jetty中开启SSL。

注意:下面的指令只是作为在开发环境中搭建SSL,如果是在生产环境,需要注意更多的安全因素,这个话题就不在本文中阐述了。

  • 首先安装好Jetty服务;

  • 为了方便起见,设置一些env变量:

export jetty_home=…/somejetty

export jetty_base = …/your_application_install_location

建议将Jetty的基础目录放在Jetty的安装目录之外,否则在类路径上容易出现问题。

  • 使用下面的命令为SSL创建初始设置
java -jar jetty_home/start.jar –add-to-startd=ssl jetty.base=jetty_base

一旦按照上面的命令执行之后,你应该能在console中看到类似如下输出:

INFO: ssl             initialised in ${jetty.base}/start.d/ssl.ini (created)

INFO: ssl             enabled in     /data/segmentation/segplat-deployments/app/application_secure/bin/${jetty.base}/start.d/ssl.ini

INFO: server          initialised in ${jetty.base}/start.ini

INFO: server          enabled in     ${jetty.base}/start.ini

INFO: server          enabled in     

INFO: resources       initialised in ${jetty.base}/start.ini

INFO: resources       enabled in     ${jetty.base}/start.ini

INFO: resources       enabled in     

  • 将下列配置添加到${jetty.base}/start.d/ssl.ini中
–module=https

检查SSL端口(jetty.ssl.port)并做响应修改。

  • 在${jetty.base}/start.ini文件中添加:
jetty.ssl.port=port

注意这个端口号必须和ssl.ini中的端口号保持一致;

  • 重启Jetty服务
java -jar jetty_home/start.jar jetty.base=jetty_base

到此,Jetty中基本的SSL服务已经开启。

常见的问题

  • Jetty使用的是哪个认证信息?

这个是Jetty比较聪明的地方,Jetty会自动导入一个keystore认证信息。

Jetty的keystore文件路径在$jetty_base/etc/keystore

  • Jetty使用的keystore的密码是什么?

keystore的密码在 $jetty_base/start.d/ssl.ini文件中配置,但是密码是加密的,你可以使用下面的命令来获取:

java -cp jetty-util-9.2.14.v20151106.jar org.eclipse.jetty.util.security.Password “OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4”

默认的密码是”storepwd”

  • 怎么看keystore里面的内容?执行以下命令:
keytool –list  -v -keystore keystore

如果在使用过程中,jetty出现类似错误的密码这样的错误,只需要把$jettyhome/etc/keystore这个文件重新拷贝到jetty_base/etc里面即可。

以上所有的步骤,只需要5分钟就能搞定,但是就这5分钟的步骤,曾经搞了我一天。enjoy it。

原文:https://www.javacodegeeks.com/2018/10/setup-ssl-jetty.html

想获取更多技术视频,请前往叩丁狼官网:http://www.wolfcode.cn/openClassWeb_listDetail.html

你可能感兴趣的:(在Jetty中快速搭建SSL)