1. 程式人生 > >在Jetty中快速搭建SSL

在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     <transitive>

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

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

INFO: resources       enabled in     <transitive>
  • 將下列配置新增到${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