原文連結:www.devsai.com
本篇不講什麼是https,什麼是SSL,什麼是nginx
想了解這些的請繞道,相信有很多優秀的文章會告訴你。
本篇要講的在最短的時間內,讓你的網站從http升級到https。
開始教程前再說一句:https你值得擁有。
起因
最近段時間,微信小程式爆火,訊息一出,各路豪傑,摩拳擦掌,躍躍欲試。
都想這個坑(這裡不多闡述,具體坑不坑,developer最清楚)裡跳。微信對小程式也是有諸多的限制。
例如檔案大小,請求服務端必須是https。
檔案大小,好辦,開發過程中儘量的控制檔案,能複用的儘量複用。用不到的檔案儘量不引用。本地的圖片也儘量的少。
可https,在國內線上用https的都不算多,更何況是開發過程中用https,應該就更少了吧。
如果你正在開發微信小程式,並還沒有https,那麼巧了,那麼我想,這篇可能可以幫到你。
StartSSL免費SSL證照
都說了是開發用(如果到了線上,想要https,相關的運維人員會搞定收費的https),那當然要用免費的。
StartSSL就是個不錯的選擇。
StartSSL
StartSSL是StartCom公司旗下的SSL證照,提供免費SSL證照服務並且被主流瀏覽器支援的免費SSL,包括Chrome、Firefox、IE等瀏覽器都可以正常識別StartSSL,更主要的是StartSSL提供免費3年
且可以無限續期的SSL證照,而且可以設定10個
域名。
StartSSL註冊、登入
1 進入註冊頁面
2 註冊很簡單隻需要填個郵箱傳送驗證碼
3 然後填入獲得的驗證碼,點選按鈕後會跳轉至設定密碼
4 註冊成功後,會讓你下載用於登入的證照,因為該網站提供了兩種登入方式,客戶端證照認證和郵箱登入(填寫郵箱,獲得驗證碼登入),個人感覺使用郵箱也很方便。
申請免費的SSL
1 先新增驗證域名,選擇選項卡的Validations Wizard
,並選擇Domain Validation (for SSL certificate)
點選Validation
2 填入域名,並在域名所有者郵箱(或域名對應的企業郵箱)中獲取傳送的驗證碼
3 新增的域名驗證成功,點選To "Order SSL Certificate "
4 現在可以開始給自己的域名申請StartSSL免費SSL證照了,這裡新增用於申請證照的完整的域名
5 申請StartSSL免費SSL時,會要求填入CSR
6 CSR 生成可以有兩種方式,一種是使用StartSSL提供的[StartComTool.exe](https://download.startpki.com/startcom/startcomtool.exe)
適用於Window,另一種方式也可以使用openssl
命令,適用於Mac,liunx等。
openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr複製程式碼
7 把生成的(youname.csr
)CSR簽名證照請求內容,貼上進去
8 然後StartSSL就可以免費SSL下載使用
下載免費的SSL
下載下來的SSL是zip格式的壓縮包,解壓後有如下內容
分別提供了幾種web服務所需的ssl認證檔案
nginx SSL配置
這裡只拿nginx舉例,編輯nginx配置檔案
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/key/xxx.pem;
ssl_certificate_key /usr/local/nginx/conf/key/xxx.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_session_cache shared:SSL:50m;複製程式碼
xxx.pem
就是從StartSSL下載下來的NginxServer.zip中的檔案xxx_bundle.crt(需要把字尾改成pem)
xxx.key
這是之前執行 openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr
時生成的key.
然後啟動nginx ,輸入密碼(該密碼是生成本地CSR時設定的)
大功告成
到這來,就可以使用https了,馬上開啟你的域名試試吧。
其實在網上也能找到很多StartSSL的申請流程。可大多都是之前的,介面與操作方式都有所改變。這篇提供了最新的StartSSL申請流程,以幫助大家更快的進行SSL認證。
看之前的教程,會告訴你,在第7步後不能馬上下載SSL認證,StartSSL會有個客服稽核的過程可能需要幾小時,但現在的使用下來發現,現在已經沒有這過程了,完成第7步就可以去認證的列表下載SSL認證。
微信小程式請求 wx.request :fail
本文的目的是為了微信小程式請求能使用https
所以,最後如果在呼叫微信wx.request介面時還是報錯,可以參考這篇尋找解決之法。