前提是你先買好證書,下載下來,證書壓縮包打開共有3個檔案

- 證書檔案:以.crt為后綴或檔案型別,
- 證書鏈檔案:以.crt為后綴或檔案型別,
- 密鑰檔案:以.key為后綴或檔案型別,
在Apache安裝目錄中新建cert目錄,并將解壓的Apache證書、 證書鏈檔案和密鑰檔案拷貝到cert目錄中,
如果需要安裝多個證書,需在Apache目錄中新建對應數量的cert目錄,用于存放不同的證書 ,
如果申請證書時選擇了手動創建CSR檔案,請將手動生成創建的密鑰檔案拷貝到cert目錄中并命名為domain name.key,


在Apache安裝目錄下,打開Apache/conf/httpd.conf檔案,并找到以下引數,按照下文中注釋內容進行配置
#LoadModule ssl_module modules/mod_ssl.so #洗掉行首的配置陳述句注釋符號“#”加載mod_ssl.so模塊啟用SSL服務,Apache默認是不啟用該模塊的,如果找不到該配置,請重新編譯mod_ssl模塊,
#Include conf/extra/httpd-ssl.conf #洗掉行首的配置陳述句注釋符號“#”,
存httpd.conf檔案并退出
打開Apache/conf/extra/httpd-ssl.conf檔案并找到以下引數,按照下文中注釋內容進行配置,
證書路徑建議使用絕對路徑,
根據作業系統的不同,http-ssl.conf檔案也可能存放在conf.d/ssl.conf目錄中,
<VirtualHost *:443> ServerName #修改為申請證書時系結的域名www.YourDomainName1.com, DocumentRoot "D:/phpStudy/WWW/yg" SSLEngine on SSLProtocol all -SSLv2 -SSLv3 # 添加SSL協議支持協議,去掉不安全的協議, SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件, SSLHonorCipherOrder on SSLCertificateFile "D:/phpStudy/Apache/cert/2335105__yg1st.com_public.crt" # 將domain name1_public.crt替換成您證書檔案名, SSLCertificateKeyFile "D:/phpStudy/Apache/cert/2335105__yg1st.com.key" # 將domain name1.key替換成您證書的密鑰檔案名, SSLCertificateChainFile "D:/phpStudy/Apache/cert/2335105__yg1st.com_chain.crt" # 將domain name1_chain.crt替換成您證書的密鑰檔案名;證書鏈開頭如果有#字符,請洗掉, </VirtualHost> #如果證書包含多個域名,復制以上引數,并將ServerName替換成第二個域名, <VirtualHost *:443> ServerName #修改為申請證書時系結的第二個域名www.YourDomainName2.com, DocumentRoot "D:/phpStudy/WWW/yg" SSLEngine on SSLProtocol all -SSLv2 -SSLv3 # 添加SSL協議支持協議,去掉不安全的協議, SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件, SSLHonorCipherOrder on SSLCertificateFile "D:/phpStudy/Apache/cert/2335105__yg1st.com_public.crt" # 將domain name2替換成您申請證書時的第二個域名, SSLCertificateKeyFile "D:/phpStudy/Apache/cert/2335105__yg1st.com.key" # 將domain name2替換成您申請證書時的第二個域名, SSLCertificateChainFile "D:/phpStudy/Apache/cert/2335105__yg1st.com_chain.crt" # 將domain name2替換成您申請證書時的第二個域名;證書鏈開頭如果有#字符,請洗掉, </VirtualHost>
改完之后,注意這檔案里有一些關于logs檔案的,路徑一定要改對,根據實際路徑來
比如我的就是:
ErrorLog "D:\phpStudy\Apache\logs\error.log" TransferLog "D:\phpStudy\Apache\logs\access.log"
改完之后打開cmd
進入你的apache安裝目錄的bin目錄下
使用:httpd -t
測驗,如果有報錯就根據提示資訊修改;沒有報錯則重啟apache即可
網站成功安裝證書,可以用https打開
這樣做完的結果是,用https可以打開,但是http開頭的還是打不開
還需要設定讓http開頭的網站自動跳轉到https開頭
在httpd.conf的<Directory>標簽內,鍵入以下內容
RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R=301]
當然我的不完全是這樣,因為我有設定別的偽靜態規則,因此做了一些調整
證書安裝完成之后,發現在谷歌瀏覽器里左上角有個提示,點開顯示網站連接并非完全安全

原因是我們的頁面存在一些不安全的http請求,比如圖片、js等靜態檔案,
我們只需要將其升級為https請求即可,
頁面的head中加入:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
意思是自動將http的不安全請求升級為https
添加之后,谷歌瀏覽器顯示“鏈接是安全的”

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/77604.html
標籤:PHP
