蘋果和小程序開發都開始要求使用https
服務,並且運營商廣告注入也愈來愈瘋狂。因此,實現網站https
很用必要。html
實現https
就須要一個SSL
證書。證書大部分都很貴,不過也有一些免費的證書服務供我的開發者使用,這是一個大好消息。好比騰訊雲,七牛雲,阿里雲。shell
咱們今天就拿阿里雲來實踐一下,由於個人服務器也在這裏。apache
原文連接:https://weiya.me/item/66.htmlubuntu
首先第一步就是獲取一個證書。來到阿里雲購買證書頁面。傳送門:阿里雲免費SSL地址小程序
選擇以下圖的配置。其餘的也買不起o(╯□╰)o瀏覽器
點擊當即購買,而後下一步,直接支付就能夠了。安全
看下支付成功服務器
以後,去阿里雲控制檯,選擇菜安全(雲盾)
->證書服務
,能夠找到剛剛的購買好的訂單。ide
剛剛買好的訂單,證書狀態爲待完成。須要點擊補全連接進行補全。網站
補全信息就是填寫一些你的域名信息和你的我的信息,順帶驗證下域名是你的。
第一步是填寫域名。這裏不能寫通配符域名,須要寫普通域名,就是相似於www.baidu.com
或者images.baidu.com
這種。
因此,當你須要多個二級域名的時候,你須要購買多個免費的SSL
證書。
下一步,填寫我的信息。
這裏面要注意,紅框內的域名驗證類型。
DNS:是在域名解析記錄裏面添加一條記錄來證實域名是你的。
文件:是傳一個文件到你的域名根目錄方式來證實域名是你的。
其中若是選擇DNS
的,而且域名在阿里雲的能夠直接勾選下面的複選框,這樣阿里雲就會自動幫你填寫域名解析記錄,全自動。
點擊下一步,進入生成CSR
界面,這裏爲了簡單,選擇系統生成。點擊建立自動建立。
完成上面全部工做後。回到證書訂單列表,信息會顯示在審覈中狀態。點擊進度能夠查看以前步奏是否有問題。
以下狀態是成功:
若是點擊進度,彈出對話框以下。
注意紅色字。說明,系統在域名解析中添加TXT
記錄存在衝突。那麼說明你的域名中存在同名的CNAME
記錄。由於,CNAME
和TXT
同名會衝突。
咱們去域名解析界面看下:
果真,這裏存在同名的CNAME
。解決方案:
先刪除CNAME,添加TXT記錄,等到域名受權驗證經過。這時再刪除TXT,把CNAME寫回來。
先把CNAME改成A記錄(由於A記錄和TXT不衝突),而後添加TXT。等到審覈經過同上。
一切問題都解決了,下面就等簽發。
等到簽發完成後,咱們直接點擊對應域名的下載連接。
跳轉到該界面,選擇你對應的服務器,下載證書。我這裏是apache
下載完成後,文件包內應該有4個文件。
咱們去服務器apache安裝的目錄建立一個文件夾cert
,在裏面再建立一個文件夾admin
(這裏爲了放多個域名證書,便於管理)。將剛剛下載的4個文件所有傳到服務器。
提示: ubuntu
服務器的apache
默認安裝目錄爲/etc/apache2
證書文件傳好了以後,咱們須要使用證書。這裏是在apache
的配置文件中引用。
首先看一下以前的apache
虛擬主機配置:
<VirtualHost *:80> DocumentRoot /var/www/admin/ ServerName admin.bidianer.com <Directory "/var/www/admin/"> Options FollowSymLinks AllowOverride all Order allow,deny Allow from all </Directory> ErrorLog "/mnt/bidianer_error.log" CustomLog "/mnt/bidianer_runtime.log" common </VirtualHost>
這裏的虛擬主機是80端口,而https
走的是443
接口,因此咱們不能再使用以前的80
端口配置。須要從新配置。可是,若是咱們還想保留http
訪問,也想用https
訪問,那麼就保留這個配置,再新建一個配置。
<VirtualHost *:443> DocumentRoot /var/www/admin/ ServerName admin.bidianer.com <Directory "/var/www/admin/"> Options FollowSymLinks AllowOverride all Order allow,deny Allow from all </Directory> SSLEngine on SSLProtocol TLSv1 TLSv1.1 TLSv1.2 SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4 SSLCertificateFile cert/admin/public.pem SSLCertificateKeyFile cert/admin/214082306780502.key SSLCertificateChainFile cert/admin/chain.pem ErrorLog "/mnt/bidianer_error.log" CustomLog "/mnt/bidianer_runtime.log" common </VirtualHost>
解釋: 上面這個配置是監聽443
端口,因此當使用https
訪問的時候會使用該配置。該配置大部分和上面的都相同,可是卻多了這一段代碼。
SSLEngine on SSLProtocol TLSv1 TLSv1.1 TLSv1.2 SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4 SSLCertificateFile cert/admin/public.pem SSLCertificateKeyFile cert/admin/21408*****0502.key # 這裏我隱藏了部分數字 SSLCertificateChainFile cert/admin/chain.pem
這段代碼就是告訴服務器使用剛剛咱們下載好的證書。把其中的地址改成你的就能夠了(尤爲注意那串數字文件要記得改)
接下來重啓apache
服務器
/etc/init.d/apache2 restart
打開瀏覽器,使用https
協議訪問你的網站(這個https
生效須要時間,時間不肯定,因此不會當即能夠訪問)。個人https://www.bidianer.com
。綠色圖標出現,一切ok
這部份內容不是必須的,是你使用了CDN服務纔會用到
若是你在阿里雲買了CDN
,那麼如何使用HTTPS
。這個方法很簡單,阿里雲已經提供了。
在開始以前,首先記得把你的相關域名解析到阿里雲的CNAME
,這樣纔可使用CDN
,再談CDN
使用HTTPS
第一步,打開你的CDN
域名列表
點擊相關域名的配置連接,進入配置頁面。
主要須要配置紅框內兩個內容。
第一個回源設置
其中源站信息,有3種選擇,這裏比較經常使用的是IP,選擇後填寫IP地址便可,端口選擇443端口
回源HOST,開啓,選擇加速域名。
回源方式,開啓協議跟隨回源
這裏說一下回源HOST
,這個最好選擇默認的加速域名,不要選擇自定義,若是你當前的域名是www.bidianer.com
,你自定義回源HOST爲bidianer.com
,那麼在你網站中獲取的網站host
信息就是bidianer.com
而不是www.bidianer.com
。
好比PHP中$_SERVER['HTTP_HOST']
就是bidianer.com
,而不是www.bidianer.com
,會出問題有時候。
第二個HTTPS
設置
點擊狀態開啓便可。
選擇你以前建立的相關域名證書。
強制跳轉能夠選擇本身想要的。
這裏說下證書名稱要和你的證書列表對應起來,不然會出錯。證書名稱在這裏:
開始你的多是一串亂七八糟的數字,最好修改一下,後面選擇證書不會出錯。
選錯了證書會有啥問題?
瀏覽器地址欄會提示:
用戶打開會是個警告頁面,網站就倒閉了。
最後提醒下,CDN使用HTTPS也會有很長時間的延遲,不要着急
嚴穎,星空幻穎
2017.4.27