Windows Apache2.4 配置https/SSL


原文鏈接:https://www.h5av.com/archives/156.html

  現在越來越多的地方需要https了,有些是必須的,比如微信小程序的接口鏈接,要求使用https,公眾號上防止運行商插入廣告等。以前的https是需要花錢的,現在有不花錢的,我使用的是阿里雲,像騰訊百度也都有免費的,我沒用過,現在就從頭到尾簡單的介紹一下設置過程。


一.申請SSL證書(阿里雲下的域名)

1.進入阿里雲域名管理列表,找到想申請ssl的域名,點擊管理

2.點擊“免費開啟SSL證書”

3.選擇免費版

4.設置要申請的二級域名(www也是二級域名)

授權系統自動添加TXT解析記錄要勾選,否則還要自己添加解析

5.申請成功后,該申請會出現在“未簽發”選項卡上,點擊申請

6.如果填寫二級域名的時候沒有勾選“授權系統自動添加TXT解析記錄”,那么需要手動添加一條解析,如果勾選可略過

7.點擊驗證

8.大概幾分鍾的時間就會驗證通過,這時“已簽發”選項卡下就會出現剛剛申請的證書信息,點擊“下載”

9.根據自己的環境選擇下載,本教程使用的是Apache,所以選擇下載Apache版本

至此,SSL證書申請完畢

二.配置Apache2.4

1.配置conf/httpd.conf

找到如下行並去掉#
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf

另外,要確認以下兩行至少有一行是去掉#的:
LoadModule socache_dbm_module modules/mod_socache_dbm.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

我的默認配置是自動開啟 mod_socache_shmcb.so 的 

2.配置conf/extra/httpd-ssl.conf

如果你之前並未配置過httpd-ssl.conf,那么就按照我的懶人方法來設置,將之前的httpd-ssl.conf備份一份,然后將當前httpd-ssl.conf里面的內容都替換成如下

Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:${SRVROOT}/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

##
## SSL Virtual Host Context
##

Define SSLROOT "C:/SSL"                    

<VirtualHost *:443>
    DocumentRoot "C:/webroot/xxxx.h5av.com"
    ServerName xxxx.h5av.com:443
    SSLEngine on
    SSLCertificateFile ${SSLROOT}/xxxx.h5av.com/155000_xxxx.h5av.com_public.crt
    SSLCertificateKeyFile ${SSLROOT}/xxxx.h5av.com/155000_xxxx.h5av.com.key
    SSLCertificateChainFile ${SSLROOT}/xxxx.h5av.com/155000_xxxx.h5av.com_chain.crt
</VirtualHost>

a) Listen是要監聽的端口,https使用的是443端口,一般不改
b) SSLROOT 是我自己加上的,由於一個域名要指定3個證書文件,所以聲明了一個變量,設置成你存放證書的路徑,這里寫絕對路徑
c) DocumentRoot/ServerName 就不多介紹了
d) 最后指定證書文件:
  SSLCertificateFile   對應 public.crt
  SSLCertificateKeyFile  對應 key
  SSLCertificateChainFile 對應 chain.crt

3.重啟Apache服務

是不是訪問不了?

三.服務器開啟443端口

之前調試了很久,對比了很多參數,為什么不好使呢?最后發現沒有開啟443端口,不同主機上開啟服務器端口的方式也都大同小異,由於我使用的是阿里雲ECS,所以在控制台開啟443端口

1.找到ECS,點擊 更多 → 網絡和安全組 → 安全組配置

2.找到對應的安全組,點擊“配置規則”

3.點擊右上角按鈕“添加安全組規則”

曾經我點擊“快速創建規則”,直接選擇 HTTPS(443),經常失敗,最后還是“添加安全組規則”好用

按照此配置即可

至此443端口開放完畢,若服務器配置了防火牆規則,那么就去服務器上開啟一下入站的443 
四.使http訪問自動轉為https訪問

四.使http訪問自動轉為https訪問

配置這個的方式有很多,有在索引文件中判斷協議后做301重定向的,有在Rewrite規則中做重定向的,而我更喜歡的是在vhost中做重定向

vhost重定向

如果你的Apache配置啟用了vhost文件,那么在你的虛擬站點中做如下配置即可

<VirtualHost *:80>
    ServerName xxxx.h5av.com
    RewriteEngine On
    RewriteRule ^/(.*)$ https://xxxx.h5av.com/$1 [R=301]
</VirtualHost>

至此,所有配置完畢

 

原文鏈接:https://www.h5av.com/archives/156.html


免責聲明!

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



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