HTTPS時代,免費SSL獲取與配置(Apache版)

爲何?

若是不知道爲何,請繞路。apache

會不會很貴?

隨着阿里雲、騰訊雲等相繼退出 ssl證書服務,ssl 證書已經比較親民。推薦你們使用收費的 ssl 證書,相對於你的業務量來講,ssl 證書真的不貴。若是你是我的站長,例如本人,不想花費,那麼仍是有免費的午飯
https://www.sslforfree.com/ui

申請

sslforfree 不支持泛域名,可是一個證書能夠包含100個域名,對於大多數狀況下都是夠用的,比較蛋疼的是一次輸入多個域名,須要驗證的過程會很是麻煩,由於每一個域名都須要上傳一個驗證文件或者增長一條 TXT 記錄來驗證域名的有效性。因此建議你們一開始不用太貪心,輸入實在要使用的域名便可,若是新增了域名,後面仍是能夠經過申請新的證書來解決。阿里雲

圖片描述

多個域名經過空格符間隔開。
點擊「Create」就是進入驗證界面,驗證完畢以後就能夠下載證書了。spa

安裝證書

打開壓縮包裏面有3個文件code

  • private.key
  • ca_bundle.crt
  • certificate.crt

三個文件分別對應 Apache 配置裏面的:blog

  • SSLCertificateKeyFile
  • SSLCertificateFile
  • SSLCertificateChainFile

上面的對應關係你們不要對應錯了。圖片

yum install mod_ssl openssl

編輯 /etc/httpd/conf/httpd/confip

LoadModule ssl_module modules/mod_ssl.so

Listen 443
NameVirtualHost *:443

<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /www
SSLEngine on
SSLHonorCipherOrder on

# 禁止SSLv2 SSLv3協議
SSLProtocol all -SSLv2 -SSLv3

#禁止RC4,禁止SF
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

SSLCertificateFile             /sslforfree/certificate.crt
SSLCertificateKeyFile         /sslforfree/private.key
SSLCertificateChainFile     /sslforfree/ca_bundle.crt
</VirtualHost>

注意:ssl

  1. 使用絕對路徑指向證書文件
  2. 若是一個 IP 供應多個域名和證書,必定要加上 NameVirtualHost 443

遇到的坑

在一個 IP 供應多個域名和證書這個問題,折騰了好久,主要的域名是 apache 版本必定要高於 2.2.12,才支持 SNI。支持 SNI 才能實現一個 IP 供給多個證書。另外就是忘記了 NameVirtualHost 443,總是隻有一個證書生效,另一個證書失效。sslforfree雖然是免費的,可是由於沒3個月就須要 renew 一次,若是嫌麻煩,仍是推薦使用付費證書服務。get

自動跳轉https

安裝 ssl 證書以後,默認狀況下用戶是可使用 http 和 https 兩種方式來訪問服務,若是但願自動跳轉,推薦使用下面的方式

<VirtualHost *:80>
ServerName www.example.com
# 全站跳轉
Redirect permanent / https://www.example.com
# 指定跳轉
Redirect permanent /user/login https://www.example.com/user/login
</VirtualHost>
相關文章
相關標籤/搜索