之前一直都沒有自己配置過https,剛好前段時間阿里雲的客服打**建議把專案從http公升級到https,提高安全性。於是就到阿里雲上申請乙個免費的證書,今天剛好有空,就上去配置一下,本來以為很簡單,沒想到花了半天的時間,記錄一下,供有需要的人借鑑一下,讓別人少踩坑。阿里雲提供了安裝說明,但是我根據說明沒有安裝成功,這也是我為什麼要寫本文的原因。
由於文件內容較多,加上有部分配置不需要使用,我只摘錄部分我有用到的進行說明,以及需要修改的地方。
阿里雲提供的安裝說明(部分)
tomcat支援jks格式證書,從tomcat7開始也支援pfx格式證書,兩種證書格式任選其一。
檔案說明:
- 證書檔案***.pem,包含兩段內容,請不要刪除任何一段內容。
- 如果是證書系統建立的csr,還包含:證書私鑰檔案***.key、pfx格式證書檔案***.pfx、pfx格式證書密碼檔案pfx-password.txt。
1、證書格式轉換
openssl pkcs12 -export -out ***.pfx -inkey ***.key -in ***.pem
2、pfx證書安裝
找到安裝tomcat目錄下該檔案server.xml,一般預設路徑都是在 conf 資料夾中。找到 "cert/***.pfx"
keystoretype="pkcs12"
#此處的證書密碼,請參考附件中的密碼檔案或在第1步中設定的密碼
keystorepass="證書密碼"完整的配置如下,其中port屬性根據實際情況修改:
keystorepass="證書密碼"
clientauth="false"
sslprotocol="tlsv1+tlsv1.1+tlsv1.2"
ciphers="tls_rsa_with_aes_128_cbc_sha,tls_rsa_with_aes_256_cbc_sha,tls_ecdhe_rsa_with_aes_128_cbc_sha,tls_ecdhe_rsa_with_aes_128_cbc_sha256,tls_rsa_with_aes_128_cbc_sha256,tls_rsa_with_aes_256_cbc_sha256"/>重啟 tomcat,檢查是否成功。
我遇到的坑
由於我的證書是有阿里雲生成的,所以第一步我就不需要操作了,因此所有的坑都集中在第二步了。
第一坑
我根據阿里雲的文件,增加keystorefile
,keystoretype
,keystorepass
到server.xml
中,並重啟tomcat,開啟瀏覽器滿心歡喜的期待著出現https,結果意外出現了,瀏覽器沒有出現我期待的https。
經過查證,發現keystorefile
的路徑不能配置為cert/***.pfx
,否則會找不到檔案,需要配置/home/yunwei/apache8.5/cert/***.pfx
的完整路徑。
第二坑
修改完keystorefile
依然沒有解決問題,繼續google,發現問題可能出現在jdk上面,意思把系統自帶的openjdk1.8
修改為普通的jdk1.8
從這兩個坑里出來後,瀏覽器總算出現了https。
不過還是不完美,
1. 訪問**時需要輸入埠8443才能使用https
2. tomcat8.5的配置是在sslhostconfig
,而我使用的還是舊版本的配置,在connector
屬性上配置,舊版本的用法將在以後廢棄。
3. 預設訪問還是http
優化
tomcat設定https埠時,8443和443區別:1. 8443埠在訪問時需要加埠,不可通過網域名稱直接訪問,例:
2. 443埠在訪問時不需要加埠號,可通過網域名稱直接訪問;例:
certificatekeystorefile="完整路徑/***.pfx"
certificatekeystoretype="pkcs12"
certificatekeystorepassword="***密碼" />
sslhostconfig>
connector>如果需要更複雜的配置,可以參考官方文件進行設定。
提供一下server.xml中配置https的新舊版本的對比,供參考
7.x版本及之前
-->8.x版本
參考文件:
client-certauth-method>
client cert users-only arearealm-name>
login-config>
sslweb-resource-name>
/*url-pattern>
web-resource-collection>
confidentialtransport-guarantee>
user-data-constraint>
security-constraint>
記錄一次RAC公升級的過程
以下內容僅在虛擬機器中進行過測試 gi 版本,11.2.0.3公升級到11.2.0.4 db版本 11.2.0.3公升級到11.2.0.4 公升級過程 1 舊版本的gi處於執行狀態,安裝11.2.0.4的gi的圖形介面。在介面上選擇upgrade gi 2 根據提示,在各個節點上執行rootupgr...
ios公升級https記錄
ios10要求公升級https,更新乙個ios sdk,搜尋相關資料,都是什麼匯入證書.但覺得單向應該沒那麼複雜,如果每個證書都要匯入,沒上乙個https 都要匯入證書了,應該雙向需要匯入證書 未測試 公升級了afnetworking庫到3.x,因為使用afnetworking2.x怎麼都有問題,就...
一次Linux驅動公升級的問題記錄
在linux開機時驅動的載入過程中總結過驅動的載入方式,會涉及到initramfs檔案中的驅動,因此在驅動公升級的時候要考慮到initramfs檔案中的驅動是否也對應的公升級到對用的版本,這是本文想記錄的乙個點。linux開機時先去載入initramfs檔案中的驅動,具體的流程如下圖所示。因此我們需...