記一次linux httpd的https配置

2021-09-24 02:32:17 字數 2005 閱讀 1554

解壓得到乙個證書檔案、私鑰、和chain檔案。

chain檔案幫助瀏覽器識別你的證書和內建ca的關係,如果你的頒發ca是由另乙個ca頒發的。

上到自己伺服器,使用命令" httpd -m " 檢視httpd的模組,發現缺少mod_ssl模組,這是編譯時沒有開啟ssl引數。

使用 httpd -v 檢視版本 ,發現版本比較早了,去github上找歷史版本。

i  此選項表示需要執行安裝操作,以安裝乙個或多個動態共享物件到伺服器的modules目錄中。

-a  此選項自動增加乙個loadmodule行到httpd.conf檔案中,以啟用此模組,或者,如果此行已經存在,則啟用之。

-a  與 -a 選項類似,但是它增加的loadmodule命令有乙個井號字首(#),即此模組已經準備就緒但尚未啟用。

-c  此選項表示需要執行編譯操作。它首先會編譯c源程式(.c)files為對應的目標**檔案(.o),然後連線這些目標**和files中其餘的目標**檔案(.o和.a),以生成動態共享物件dsofile 。如果沒有指定 -o 選項,則此輸出檔名由files中的第乙個檔名推測得到,也就是預設為mod_name.so

注意,你的系統可能會因為缺少openssl或openssl檔案缺失而失敗,確保openssl正確安裝。

-a 引數自動再httpd.conf 增加loadmodule行

安裝完成後重啟httpd,再次使用httpd -m檢視模組,發現模組已經編譯進去了。

接下來增加有關ssl的配置檔案,我在conf.module.d目錄下建立00-ssl.conf,這個目錄下的 *.conf都會被包含進去。 

這裡我直接複製我windows的apache ssl配置檔案並修改。

修改埠號為8043,並把protocolshonororder和protocols注釋,因為查官方文件發現這兩個配置項需要在版本大於等於2.4.17

修改下面的對應埠的 virtualhost 配置項:

sslengine on

sslcertificatefile 公鑰檔案即上述提到的 public.crt

sslcertificatekeyfile  私鑰檔案

sslcertificatechainfile  chain檔案,沒有可省略

可根據官方文件指示需要關閉或開啟一些選項。

接下來,做乙個原來的埠重定向。修改 conf.d/httpd-vhost.conf

在對應的virtualhost中新增:

最後別忘了開啟防火牆的埠和阿里雲的埠,如果原訪問埠能重定向即配置成功。

順便簡單總結https連線的基本流程,https使用非對稱加密區加密對稱密碼的金鑰。

1. client向https埠請求,請求中攜帶支援的加密演算法和雜湊演算法、隨機數

2. server收到請求,選擇支援的演算法,傳送自己的證書

3. client檢驗證書 合法性,可信任或不可信任

4. client生成用於加密傳輸資料的對稱加密金鑰,並用證書上的公鑰加密,連同支援的對稱加密演算法通過http請求傳送給server

5. server使用私鑰解密得到對稱加密的金鑰,選擇加密演算法,並使用此金鑰加密響應返回,

6. client使用對稱加密金鑰解密響應並驗證,https通訊建立。

證書檢驗過程。

client收到證書後,獲取證書上的頒發機構,查詢此機構是否為系統中內建的受信任的證書機構,取出該機構的公鑰(機構也有自己一套非對稱加密演算法),使用該公鑰解密證書上的指紋和指紋演算法,使用該指紋演算法計算證書上的內容是否和指紋一致。

參考

記一次h5動畫之旅

戳這裡 github css3 react id swiper react redux saga 採用postcss的autoprefixer外掛程式,即可滿足大多數oppo,vivo手機的相容性問題。流星 閃爍星星 字的晃動 人的移動 動畫 監聽動畫結束時間 橋的鋪墊 開啟旅程按鈕縮放 旋轉 相容...

記一次的使用

將jsp拆分frame框架,因為採用了第一種方式,一直在考慮用jquery非同步請求獲取資料,總是但不到效果,終於在js寫吐的時候選擇了第二種方式。參考網上的使用,大多是下面這個樣子,如果涉及靜態頁面之間定位,是沒有問題的 href 為目標頁面 通過target定位到frame views main...

記一次除錯

這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...