在Apache服務器上安裝SSL證書


前提是你先買好證書,下載下來,證書壓縮包打開共有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
添加之后,谷歌瀏覽器顯示“鏈接是安全的”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM