Apache24配置https

前言

最近想把完美韻腳搞個小程序版,微信小程序需要https形式的訪問,簡單的瞭解後進行了對項目進行項目進行了https配置,期間也遇到幾個坑,這裏記錄下。
我的項目配置:Apache24+Django1.9.2+Python3.5

申請https證書

https證書有免費版、收費版,也可以自己用工具生成,我出賣了個人信息,註冊了騰訊雲,拿到了一個免費使用一年的https證書。
騰訊雲證書下載地址:https://cloud.tencent.com/document/product/400/6814
申請證書我選擇了 文件驗證 ,但是騰訊雲文檔上說的文件驗證我操作沒法訪問,這裏我通過Django設置views的urls來訪問驗證文件來解決的,添加的url如下。

url(r'^.well-known/pki-validation/fileauth.txt$', TemplateView.as_view(template_name=".well-known/pki-validation/fileauth.txt", content_type="text/plain"), name="test"),

驗證後下載證書,下載證書如下:
在這裏插入圖片描述

配置https

放證書文件

我將證書文件放置到Apache24安裝目錄。

1. 配置httpd.conf

打開Apache24/conf/httpd.conf,進行配置修改,建議修改前先備份。

1.1 將配置文件中下面兩行取消註釋,開啓ssl。

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so

1.2 將配置文件中下面一行取消註釋,注意 httpd-ahssl.conf 不要取消註釋

Include conf/extra/httpd-ssl.conf
# Include conf/extra/httpd-ahssl.conf

2. 配置httpd-ssl.conf

打開Apache24/conf/extra/httpd-ssl.conf,進行配置修改,同樣建議修改前先備份。

2.1 監聽443端口

Listen 443
443端口是https的默認端口,這裏確認它是443就好。

2.2 配置ServerName

將 ServerName及ServerAdmin由
ServerName www.example.com:443
ServerAdmin [email protected]
改成自己的域名:
ServerName www.wanmeiyunjiao.com:443
ServerAdmin [email protected]

2.3 配置證書文件

SSLCertificateFile "${SRVROOT}/cert/2_www.wanmeiyunjiao.com.crt"
SSLCertificateKeyFile "${SRVROOT}/cert/3_www.wanmeiyunjiao.com.key"
SSLCertificateChainFile "${SRVROOT}/cert/1_root_bundle.crt"
我這邊的SRVROOThttpd.confApache24C:/Apache24DefineSRVROOT"C:/Apache24"ServerRoot"{SRVROOT}在httpd.conf定義爲Apache24的路徑:C:/Apache24 `Define SRVROOT "C:/Apache24"` `ServerRoot "{SRVROOT}"`

2.4 最終簡略配置
<VirtualHost _default_:443>
DocumentRoot "${SRVROOT}/htdocs"
ServerName www.wanmeiyunjiao.com:443
ServerAdmin [email protected]
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile "${SRVROOT}/cert/2_www.wanmeiyunjiao.com.crt"
SSLCertificateKeyFile "${SRVROOT}/cert/3_www.wanmeiyunjiao.com.key"
SSLCertificateChainFile "${SRVROOT}/cert/1_root_bundle.crt"
</VirtualHost>

重啓Apache

重啓Apache,在網頁中訪問https的網址吧:https://wanmeiyunjiao.com/
訪問結果:
在這裏插入圖片描述

坑&其他

配置時需要將阿里雲 443 端口開啓,如果服務器是阿里雲的話,可以Telnet服務器443端口看下。
在服務器內部可以通過 https://localhost 進行嘗試訪問。
遇到過 assert assert sys.modules[modname] is not old_mod 報錯,我直接將報錯文件的這兩行直接註釋掉了。

參考博客

Apache2.4 HTTPS SSL證書配置
apache配置https
【SSL】配置好SSL仍然無法通過阿里雲服務器訪問https443端口的問題
關於 HTTPS 一篇文章就夠了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章