記錄一次http公升級https的過程

2021-08-22 15:07:04 字數 3423 閱讀 7315

之前一直都沒有自己配置過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,keystorepassserver.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檔案中的驅動,具體的流程如下圖所示。因此我們需...