背景:
HTTP(Hypertext Transfer Protocol)超文本傳輸協(xié)議是用來(lái)在Internet上傳送超文本的傳送協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。但HTTP協(xié)議采用明文傳輸信息,存在信息竊聽(tīng)、信息篡改和信息劫持的風(fēng)險(xiǎn)。
HTTPS(Secure Hypertext Transfer Protocol) 安全超文本傳輸協(xié)議是一個(gè)安全的通信通道,它基于HTTP開(kāi)發(fā),用于在客戶計(jì)算機(jī)和服務(wù)器之間交換信息。HTTPS使用安全套接字層(SSL)進(jìn)行信息交換,簡(jiǎn)單來(lái)說(shuō)HTTPS是HTTP的安全版,是使用TLS/SSL加密的HTTP協(xié)議。
什么是SSL數(shù)字證書(shū)(SSL證書(shū))?
數(shù)字證書(shū)的一種,類似于駕駛證、護(hù)照和營(yíng)業(yè)執(zhí)照的電子副本。因?yàn)榕渲迷诜?wù)器上,也稱為SSL服務(wù)器證書(shū)。SSL 證書(shū)就是遵守 SSL協(xié)議,由受信任的數(shù)字證書(shū)頒發(fā)機(jī)構(gòu)CA(如GlobalSign,wosign),在驗(yàn)證服務(wù)器身份后頒發(fā),具有服務(wù)器身份驗(yàn)證和數(shù)據(jù)傳輸加密功能。
CA:
即證書(shū)授權(quán)中心(CA, Certificate Authority)。CA是負(fù)責(zé)簽發(fā)證書(shū)、認(rèn)證證書(shū)、管理已頒發(fā)證書(shū)的機(jī)關(guān)。用戶向CA提出申請(qǐng)后,CA負(fù)責(zé)審核用戶信息,然后對(duì)關(guān)鍵信息利用私鑰進(jìn)行”簽名”,并公開(kāi)對(duì)應(yīng)的公鑰??蛻舳丝梢岳霉€驗(yàn)證簽名。
CSR:
CSR(Certificate Signing Request)即證書(shū)請(qǐng)求文件,也就是證書(shū)申請(qǐng)者在申請(qǐng)數(shù)字證書(shū)時(shí)由CSP(加密服務(wù)提供者)在生成私鑰的同時(shí)也生成證書(shū)請(qǐng)求文件,證書(shū)申請(qǐng)者只要把CSR文件提交給證書(shū)頒發(fā)機(jī)構(gòu)后,證書(shū)頒發(fā)機(jī)構(gòu)使用其根證書(shū)私鑰簽名就生成了證書(shū)公鑰文件,也就是頒發(fā)給用戶的證書(shū)。
使用ssl證書(shū)優(yōu)勢(shì)?
谷歌從 2017 年1月1日起,Chrome 瀏覽器將會(huì)對(duì)未進(jìn)行HTTPS加密的網(wǎng)站標(biāo)記為「不安全」網(wǎng)站;
同時(shí)蘋(píng)果App Store的所有iOS應(yīng)用將強(qiáng)制采用ATS標(biāo)準(zhǔn),也就是強(qiáng)制使用 HTTPS;
在國(guó)內(nèi)熱火朝天的小程序也要求必須使用 HTTPS 請(qǐng)求。
防流量劫持
全站Https是根治運(yùn)營(yíng)商、中間人流量劫持的解決方案,不僅可以杜絕網(wǎng)頁(yè)中被插入的小廣告,更可以保護(hù)用戶隱私安全。提升搜索排名
采用Https可以幫忙搜索排名的提升,提高站點(diǎn)的可信度和品牌形象。杜絕釣魚(yú)網(wǎng)站
Https地址欄綠色圖標(biāo)可以幫助用戶識(shí)別出釣魚(yú)網(wǎng)站,保障用戶和企業(yè)的利益不受損害,增強(qiáng)用戶信任。
過(guò)程:
昨天在學(xué)習(xí)小程序模仿知乎日?qǐng)?bào)的時(shí)候發(fā)現(xiàn)小程序居然不支持http://的請(qǐng)求,雖然可以在本地電腦環(huán)境用體驗(yàn)版小程序進(jìn)行測(cè)試,但是手機(jī)上不能預(yù)覽我是絕對(duì)不能忍受的!而且https是未來(lái)的趨勢(shì),學(xué)會(huì)配置個(gè)https訪問(wèn)的網(wǎng)站,也算是個(gè)技能吧(我是很絕對(duì)的 滑稽....)
在網(wǎng)上稍微瀏覽了下如何實(shí)現(xiàn)https訪問(wèn)
我這里選擇了阿里云的免費(fèi)證書(shū),下面是我申請(qǐng)證書(shū)的步驟:
1.首先,你需要有一臺(tái)阿里云的服務(wù)器,一個(gè)備案過(guò)的域名。
2.開(kāi)始申請(qǐng)證書(shū):
選擇控制臺(tái)===>安全(云盾)

點(diǎn)擊選擇并購(gòu)買(mǎi)證書(shū)

支付完成后,到我的證書(shū),補(bǔ)全信息

使用主域名即可

3.申請(qǐng)完成后等待簽發(fā).并下載證書(shū)

選擇apache

下載到本地的文件列表

什么嘛?申請(qǐng)個(gè)免費(fèi)DV證書(shū)就行了?apache服務(wù)器里配置就好了?
不存在的,不然我而不會(huì)昨天晚上熬到2點(diǎn)了,這里給自己點(diǎn)個(gè)贊!
我現(xiàn)在服務(wù)器使用的ngrok內(nèi)網(wǎng)穿透,也就是說(shuō)我自己的電腦就是服務(wù)器,具體了解請(qǐng)參考我的另一篇文章:Centos搭建Ngrok實(shí)現(xiàn)內(nèi)網(wǎng)穿透
誤區(qū):
一開(kāi)始我的思路就錯(cuò)了,我以為我的代理給本機(jī)做了轉(zhuǎn)發(fā),那么我只要將本地的apache配置證書(shū)就可以了(我類比成如果我的服務(wù)器是windows的,那的確是這個(gè)方法,但是我的服務(wù)器是在centos上用ngrok轉(zhuǎn)發(fā)的)。后來(lái)想想也太蠢了,ssl證書(shū)在本地配置,瀏覽器怎么識(shí)別你是安全的網(wǎng)站呢?
轉(zhuǎn)換思路:
應(yīng)該是將ngrok中的證書(shū)替換,建立一條安全隧道,通過(guò)這條隧道訪問(wèn)的網(wǎng)站即是安全的,可以通過(guò)https驗(yàn)證
然后我哦開(kāi)始著手找這方面的資料,百度上幾乎沒(méi)有這個(gè)詞條,最后還是簡(jiǎn)書(shū)的一個(gè)兄dei的文章里看到了我想要的,但是說(shuō)的比較籠統(tǒng),還好他貼了原文,是GitHub上外國(guó)友人寫(xiě)的帖子
我英語(yǔ)也不好,直接用了google翻譯,首先將下載下來(lái)的兩個(gè)文件

將第一個(gè)重命名為1.key,第二個(gè)重命名為2.crt,傳到ngrok的目錄下,
啟動(dòng)ngrok
sudo ./bin/ngrokd -domain="abc.com" -tlsKey="1.key" -tlsCrt="/usr/local/src/ngrok/2.crt" &
ngrok 默認(rèn)隧道端口:4443;http端口:80;https端口:443
本機(jī)的apache不用做任何修改只需要開(kāi)放443端口就可以

訪問(wèn)測(cè)試:

大功告成?。?!
啦啦啦啦~~~~
歡迎大家交流~!
著作權(quán)歸作者所有。
商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
