一直在使用很多與支付相關的https網站,通過Secure Socket Layer(SSL)安全協議加密包含傳輸的關鍵信息,也了解到搜索引擎Google, 百度等近年都改為了https方式訪問,而且對使用https的網站給予較高排名,但我們自己的網站一直沒有采用https方式,因為覺得麻煩和不是很必要。
上周在了解微信小程序的時候,看到微信request接口對應的訪問不能是http方式,隻能是https方式,所以不得不了解這方面的情況,通過查閱一些資料,再一點一點測試,終于是實現了https方式訪問,現在把一些要點記錄下來。
使用https方式的一個最大攔路虎是SSL證書(SSL Certificates),一般都是需要收費的而且費用不低,但聽說國外StartCom公司可以提供免費的SSL證書,于是就去探訪了一番,他們提供這幾種證書:
EV 擴展組織認證 StartSSL™ Extended Validation |
OV 組織認證 StartSSL™ Organization Validation |
IV 個人認證 StartSSL™ Identity Validation |
DV 域名認證(免費) StartSSL™ Free |
UNLIMITED - Class 4 EV SSL Certificate UNLIMITED - Class 3 OV SSL Certificate UNLIMITED - Class 3 Organization Client Certificate ONE - Class 3 Code Signing Certificate |
UNLIMITED - Class 3 OV SSL Certificate UNLIMITED - Class 3 Organization Client Certificate ONE - Class 3 Code Signing Certificate |
UNLIMITED - Class 2 IV SSL Certificate UNLIMITED - Class 2 Client Certificate ONE - Class 2 Code Signing Certificate |
UNLIMITED - Class 1 DV SSL Certificates (up to 10 domains per Certificate) UNLIMITED - Class 1 Email Validation (S/MIME Certificate) All certificates are valid for 3 years |
支持通配符 | 支持通配符 | 支持通配符 | 不支持通配符,每份證書最多支持10個域名 |
$ 199.90/Y Validation Fee |
$ 119.80/Y Validation Fee |
$ 59.90/Y Validation Fee |
$ 0.00 |
就先嘗試免費的DV域名認證,這個申請過程有很多老手都寫了很好的詳細介紹文章,例如:
需要注意的是申請賬号的時候會給一個email私匙,導入(Chrome)浏覽器以便以後登錄,需要保存好私匙p12文件,或者從浏覽器導出包括私匙和證書的pfx文件,保存到電腦以外的雲盤等地方。
登錄後Validations Wizard來驗證域名或者email,我們這裡都是驗證域名以便獲得SSL證書,輸入擁有的域名後,系統會給域名管理員發送郵件,在郵箱中收取郵件獲得驗證碼,輸入系統後就驗證了域名的所有權。多個域名可以多次這樣操作。但驗證完成後後台提示Validation Success. You have successfully authenticated domain"example.com". You will be able to use this verification for the next 90 days, after which it expires and must be re-validated. 也就是說90天後還需要再次驗證域名所有權。
再使用Certificates Wizard來獲取證書,選擇Free方式,輸入要使用的域名(可以是二級域名),使用
startcomtool.exe工具來生成csr(并保存csr和key文件)或者服務器上運行openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr來生成csr和key文件,再生成證書。
再在Tool Box中Retrieve獲取證書文件,壓縮文件包含了Apache等幾種,獲取需要的放置到服務器上,再修改httpd.conf, httpd-ssl.conf,重啟httpd就可以了(具體還有一點複雜,請在搜索引擎搜索相關介紹文章)。
例如我現在這個博客,既可以用http訪問,也可以用https來訪問:
我這才是剛剛設置,還有更多還需要慢慢摸索,另外一定要保存好一些文件、配置等,避免丢失後無法取回,在一段時間(例如幾個月、一年、幾年)後還需要續簽、重新認證、刷新證書等。在startssl中可以免費設置10個域名,但也不要胡亂設置,如果要取消還是需要付費的!
2016年11月28日補充:又申請到了免費的個人認證(需要提交身份證、手持身份證照片、銀行小額彙款驗證),可以獲得IV,這樣就支持通配符域名(泛域名解析)的站點了。對于同一個域名或者子域名,可以生成多個證書,隻要在apache設置中指向當前需要使用的證書就可以。
電話咨詢後得知目前IV、OV、EV也都是免費的(下一年可能就收費了),于是為公司辦理了組織認證,需要上傳營業執照、簽字蓋章的确認書、銀行小額彙款驗證,也隻要2-3天就可以辦妥了。StartCom的每個賬号隻能申請個人認證或者組織認證二選一,所以又注冊了一個賬号來申請組織認證。
在生成通配符域名證書的時候有一點需要注意,*.example.com隻代表abc.example.com而不代表123.abc.example.com,所以在需要的時候還要把*.abc.example.com這樣的通配符域名也寫入才行。
2017年11月30日補充:收到startcom的郵件,我們去年做的認證到期了,不過我們去年早就開始考慮StartCom以外更多的SSL證書提供商,全面改為Let's Encrypt的免費SSL證書了,對我們沒有什麼影響。去看https://www.startssl.com的域名都打不開,因為其本身的SSL證書被吊銷了,但http://www.startssl.com會跳轉到https://www.startcomca.com,去看到一篇新聞《Termination of StartCom business》,這個公司決定終止業務開展了。
评论