apache http自动跳转https_怎么给网站开启https协议?Apache2下SSL证书安装配置方法...
本文原創,未經允許,嚴禁裝載
剛做本站的時候,我也不知道為什么要開啟https協議,只是發現有很多網站都是https。當用Chrome瀏覽器打開本社區網站的時候,發現現實”不安全”,這對于有強迫癥的我來說,是不能忍的,于是申請了免費的證書,花了一個多小時才搞定。開啟https協議本身不難,但是內容很繁瑣。
https具有加密傳輸通道,有效保障隱私數據密文傳輸,截取也無法解密。HTTP明文傳輸,沒有SSL加密通道,任何人都可以輕松截取或篡改機密數據。
好了廢話不多說,首先,需要申請證書,我用的是亞洲誠信(https://www.trustasia.com/)的免費證書,至于證書申請流程可以看看這里:https://www.trustasia.com/doc/how-to-get-digital-certificates,如果你已經擁有了證書,請跳過這一步。
有與本站用的是apache2,apache2服務器需要用到for Apache.zip的文件以及自主生成的私鑰.key文件(申請證書過程中創建CSR時生成),具體文件見下圖:
將SSL證書上傳至apache2的目錄下,記錄一下證書的絕對地址,方便等下使用。
上傳好之后,我們需要為apache服務器添加ssl模塊支持,命令如下:
sudo a2enmod ssl然后進入apache2的配置文件目錄/etc/apache2/sites-available,找到對應的配置
文件,默認為default-ssl.conf(根據實際環境),找到VirtualHost *:443的配置,并參考如下配置(修改或增加):
<VirtualHost *:443>DocumentRoot 網站根目錄SSLEngine onSSLCertificateFile /etc/ssl/certs/frostless.net.crtSSLCertificateKeyFile /etc/ssl/private/frostless.net.keySSLCertificateChainFile /etc/ssl/certs/root_bundle.crtSSLProtocol all -SSLv2 -SSLv3SSLCipherSuite ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULLSSLHonorCipherOrder on</VirtualHost>添加上述配置,保存后,給配置文件建立一個軟連接,命令如下:
sudo a2ensite default-ssl進入apache2的配置文件目錄,找到ports.conf,添加Listen 443,如果默認已添加,忽略此步驟。
檢測SSL配置
上述的配置完成后,可先用命令檢測配置是否正確,若不正確,請不要重啟apache2!檢測命令如下:
/usr/sbin/apache2ctl -t輸入命令后,若提示Syntax OK,則表示配置正常(如果提示錯誤,請根據具體錯誤修改,直到提示Syntax OK),可以重啟apache2,命令如下:
sudo service apache2 restart打開瀏覽器,輸入https://你的域名,如瀏覽器地址欄顯示加密小鎖,則表示證書配置成功。若顯示無法連接,請確保防火墻或安全組等策略有放行443端口(SSL配置端口)。
http重定向到https(可選)
若可以成功訪問https,那么我們再執行最后一步,強制用戶即使輸入http,也跳轉到https上來,操作很簡單,添加下列三行代碼即可。修改默認網站配置 /etc/apache2/site-avaliable/000-default.conf
<VirtualHost *:80> ...RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} ... </VirtualHost>保存后執行以下命令,
sudo a2enmod rewrite然后再次重啟一下apache服務器:
sudo service apache2 restart好了,大功告成,大家加油!
總結
以上是生活随笔為你收集整理的apache http自动跳转https_怎么给网站开启https协议?Apache2下SSL证书安装配置方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: field list什么意思_从源码中学
- 下一篇: vba 您正和其他用户尝试修改同一条数据