在Jetty中快速搭建SSL
阿新 • • 發佈:2018-11-03
本文翻譯:吳嘉俊,叩丁狼高階講師。
你是否遇到過需要快速搭建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