配置SSL證書各種踩坑,最終配置成功https


配置SSL證書各種踩坑,跟着官方說明文檔走,很多坑沒寫出來,最終踩了很多坑,查了很多論壇,最終配置成功https。

歡迎訪問我的個人站點(有狗糧)~

https://www.orangexp.top

(以下是配置SSL的官方教程,坑有點多。。)

阿里雲SSL證書服務支持下載證書安裝到Apache服務器,從而使Apache服務器支持HTTPS安全訪問。本文介紹了證書安裝的具體操作。

前提條件

  • 您的Apache服務器上已經開啟了443端口(HTTPS服務的默認端口)。
  • 您的Apache服務器上已安裝了mode_ssl.so模塊(啟用SSL功能)。
  • 本文檔證書名稱以domain name為示例,例如:證書文件名稱為domain name_public.crt,證書鏈文件名稱為domain name_chain.crt,證書密鑰文件名稱為domain name.key。
  • 申請證書時如果未選擇系統自動創建CSR,證書下載壓縮包中將不包含.key文件。
說明  .crt擴展名的證書文件采用Base64-encoded的PEM格式文本文件,可根據需要修改成.pem等擴展名。 證書格式詳細內容,請參見主流數字證書都有哪些格式?

操作步驟

  1. 解壓已下載保存到本地的Apache證書文件。
    解壓后的文件夾中有3個文件: 證書文件
    • 證書文件:以.crt為后綴或文件類型。
    • 證書鏈文件:以.crt為后綴或文件類型。
    • 密鑰文件:以.key為后綴或文件類型。
  2. Apache安裝目錄中新建cert目錄,並將解壓的Apache證書、證書鏈文件和密鑰文件拷貝到cert目錄中。如果需要安裝多個證書,需在Apache目錄中新建對應數量的cert目錄,用於存放不同的證書 。
    說明 如果申請證書時選擇了 手動創建CSR文件,請將手動生成創建的密鑰文件拷貝到cert目錄中並命名為domain name.key。
  3. 修改httpd.conf配置文件。
    1. 在Apache安裝目錄下,打開Apache/conf/httpd.conf文件,並找到以下參數,按照下文中注釋內容進行配置。
      #LoadModule ssl_module modules/mod_ssl.so #刪除行首的配置語句注釋符號“#”加載mod_ssl.so模塊啟用SSL服務,Apache默認是不啟用該模塊的。 #Include conf/extra/httpd-ssl.conf #刪除行首的配置語句注釋符號“#”。 
      說明 如果您在 httpd.conf文件中沒有找到以上配置語句,請確認您的Apache服務器中是否已經安裝mod_ssl.so模塊。可執行yum install -y mod_ssl命令安裝mode_ssl模塊。
    2. 保存httpd.conf文件並退出。
  4. 修改httpd-ssl.conf配置文件。
    1. 打開Apache/conf/extra/httpd-ssl.conf文件並找到以下參數,按照下文中注釋內容進行配置。
      說明 根據操作系統的不同, http-ssl.conf文件也可能存放在conf.d/ssl.conf目錄中。
      <VirtualHost *:443> ServerName #修改為申請證書時綁定的域名www.YourDomainName1.com。 DocumentRoot /data/www/hbappserver/public SSLEngine on SSLProtocol all -SSLv2 -SSLv3 # 添加SSL協議支持協議,去掉不安全的協議。 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。 SSLHonorCipherOrder on SSLCertificateFile cert/domain name1_public.crt # 將domain name1_public.crt替換成您證書文件名。 SSLCertificateKeyFile cert/domain name1.key # 將domain name1.key替換成您證書的密鑰文件名。 SSLCertificateChainFile cert/domain name1_chain.crt # 將domain name1_chain.crt替換成您證書的密鑰文件名;證書鏈開頭如果有#字符,請刪除。 </VirtualHost> #如果證書包含多個域名,復制以上參數,並將ServerName替換成第二個域名。 <VirtualHost *:443> ServerName #修改為申請證書時綁定的第二個域名www.YourDomainName2.com。 DocumentRoot /data/www/hbappserver/public SSLEngine on SSLProtocol all -SSLv2 -SSLv3 # 添加SSL協議支持協議,去掉不安全的協議。 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。 SSLHonorCipherOrder on SSLCertificateFile cert/domain name2_public.crt # 將domain name2替換成您申請證書時的第二個域名。 SSLCertificateKeyFile cert/domain name2.key # 將domain name2替換成您申請證書時的第二個域名。 SSLCertificateChainFile cert/domain name2_chain.crt # 將domain name2替換成您申請證書時的第二個域名;證書鏈開頭如果有#字符,請刪除。 </VirtualHost>
      說明 需注意您的瀏覽器版本是否支持SNI功能。如果不支持,多域名證書配置將無法生效。
    2. 保存httpd-ssl.conf文件並退出。
  5. 重啟Apache服務器使SSL配置生效。
    在Apache的bin目錄下執行以下命令:
    1. 停止Apache服務。
      apachectl -k stop
    2. 開啟Apache服務。
      apachectl -k start
  6. 可選:修改httpd.conf文件,設置HTTP請求自動跳轉HTTPS。

    httpd.conf文件中的<VirtualHost *:80> </VirtualHost>中間,添加以下重定向代碼。

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

    (筆者沒有選擇使用這個請求,故http和https皆可)

后續操作

證書安裝完成后,您可通過登錄證書的綁定域名驗證該證書是否安裝成功。
https://domain name #domain name替換成證書綁定的域名。

如果網頁地址欄出現小鎖標志,表示證書安裝成功。

DV SSL、OV SSL數字證書部署在服務器上后,您的瀏覽器訪問網站時,展示以下效果: DV/OV證書安裝效果圖

證書安裝完成后,如果網站無法通過https正常訪問,需確認您安裝證書的服務器443端口是否已開啟或被其他工具攔截。如果您使用的是阿里雲ECS服務器,請前往ECS控制台安全組頁面配置放行443端口。

備注:有好幾處在conf/http-conf.conf的#要去除,還有一些配置要修改,根據系統提示一處一處改吧。。歡迎一起留言討論


免責聲明!

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



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