摘要:當(dāng)點(diǎn)擊檢查配置之后,如果阿里云能夠正常訪問(wèn),則會(huì)在左側(cè)給出提示,現(xiàn)在可以返回證書(shū)列表,在列表中可以看到當(dāng)前狀態(tài)為審核中,如下圖審核因?yàn)椴恍枰藶楦深A(yù),所以很快就能下發(fā)證書(shū),筆者下發(fā)證書(shū)的時(shí)間大約是分鐘左右。
一、背景
筆者所在團(tuán)隊(duì)需要開(kāi)發(fā)ios的APP,而apptstore應(yīng)用商店審核需要應(yīng)用使用https,所以需要配置https證書(shū),筆者將此次配置的過(guò)程與遇到的一些問(wèn)題記錄下來(lái),方便自己和讀者后續(xù)參考。
二、操作概要申請(qǐng)證書(shū)與認(rèn)證
證書(shū)下載與配置
問(wèn)題分析與總結(jié)
三、申請(qǐng)證書(shū)與認(rèn)證要搭建https服務(wù)首先需有SSL證書(shū),證書(shū)通常是在第三方申請(qǐng),在阿里云的安全服務(wù)中有SSL證書(shū)這一項(xiàng),可以在里面申請(qǐng)免費(fèi)的證書(shū);
也可以在自己電腦中生成,雖然也能完成加密,但是瀏覽器是不認(rèn)可的,因此最好還是去第三方申請(qǐng)3.1 證書(shū)申請(qǐng)
阿里云提供免費(fèi)的證書(shū),不需要人工審核,用來(lái)做測(cè)試是非常不錯(cuò)的選擇,申請(qǐng)地址如下URL。
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.1.1aa12b7aWWn20O&commodityCode=cas#/buy
免費(fèi)型的證書(shū)隱藏的比較深,想要申請(qǐng)免費(fèi)證書(shū)需要先選擇 1個(gè)域名->Symantec->免費(fèi)型 ,所以讀者這里需要注意一下,如下圖參考。
選擇之后,一直惦記下一步,便可購(gòu)買(mǎi)完成,免費(fèi)購(gòu)買(mǎi)證書(shū)之后筆者需要回到證書(shū)控制臺(tái),在控制臺(tái)有一個(gè)補(bǔ)全信息的鏈接地址,需要通過(guò)此地址補(bǔ)充申請(qǐng)人的聯(lián)系信息,參考下圖填寫(xiě)
3.2 域名驗(yàn)證補(bǔ)全個(gè)人信息之后,筆者還需要給阿里云驗(yàn)證當(dāng)前域名是屬于本人的,驗(yàn)證方式有兩種,第一種是通過(guò)dns解析認(rèn)證,第二種是通過(guò)上傳驗(yàn)證文件認(rèn)證,筆者這里采用的是驗(yàn)證文件認(rèn)證,首先需要下載文件,如下圖
在下載驗(yàn)證文件完成之后,筆者需要把文件放到服務(wù)器中去,這里提供一條復(fù)制命令
scp ~/Downloads/fileauth.txt tangqingsong@192.168.43.34:~/
將驗(yàn)證文件復(fù)制到服務(wù)器之后,筆者還需要將驗(yàn)證文件放到站點(diǎn)對(duì)應(yīng)目錄,參考命令如下:
mkdir -p /website/.well-known/pki-validation && cp fileauth.txt /website/.well-known/pki-validation/
現(xiàn)在筆者要驗(yàn)證文件放置的位置是否正確,筆者通過(guò)兩種方式進(jìn)行了驗(yàn)證,分別是手動(dòng)驗(yàn)證,和阿里云驗(yàn)證。
3.2.1 手動(dòng)驗(yàn)證手動(dòng)驗(yàn)證的目的是首先確保文件位置放置是否正確,可以通過(guò)訪問(wèn)站點(diǎn)的url是否成功進(jìn)行判斷,比如筆者可以訪問(wèn)如下URL,如果返回如果頁(yè)面能夠正常打開(kāi),并且可以看到某些值,則代表配置成功。
http://www.songboy.net/.well-known/pki-validation/fileauth.txt3.2.2 通過(guò)阿里云來(lái)驗(yàn)證
在確保文件放置正確之后,關(guān)鍵的是能讓阿里云能訪問(wèn)到,阿里云這里提供了一個(gè)檢查配置的功能,在下載驗(yàn)證文件頁(yè)面,有一個(gè)檢測(cè)配置的鏈接,單擊之后便可進(jìn)行檢查,如下圖。
當(dāng)點(diǎn)擊 檢查配置 之后,如果阿里云能夠正常訪問(wèn),則會(huì)在左側(cè)給出提示,現(xiàn)在可以返回證書(shū)列表,在列表中可以看到當(dāng)前狀態(tài)為審核中,如下圖
審核因?yàn)椴恍枰藶楦深A(yù),所以很快就能下發(fā)證書(shū),筆者下發(fā)證書(shū)的時(shí)間大約是2分鐘左右。
四 證書(shū)下載與配置 4.1 證書(shū)下載證書(shū)簽發(fā)之后,可以在列表中可以看到狀態(tài)欄中為 已簽發(fā) ,同時(shí)操作欄可以下載以及查看詳情等,如下圖所示
點(diǎn)擊下載后,會(huì)跳轉(zhuǎn)到下載詳情頁(yè)面,在下載詳情頁(yè)可以選擇自己相對(duì)應(yīng)的web服務(wù),比如筆者使用nginx,當(dāng)選擇nginx之后,下方還會(huì)很貼心的提示如何配置,現(xiàn)在筆者下載nginx配置文件。
下載配置文件之后,筆者需要將其解壓,解壓之后可以看見(jiàn)里面包含了兩個(gè)證書(shū)文件,如下圖所示
接著需要把這兩個(gè)證書(shū)文件給復(fù)制到服務(wù)器當(dāng)中去,首先需要在服務(wù)器創(chuàng)建對(duì)應(yīng)的文件夾,參考命令如下
cd /usr/local/nginx/conf/ && mkdir cert #此命令在服務(wù)器執(zhí)行
在服務(wù)器創(chuàng)建完成對(duì)應(yīng)文件夾之后,執(zhí)行命令將證書(shū)文件復(fù)制到服務(wù)器中,參考命令如下:
scp ~/Downloads/214905423420461/* tangqingsong@192.168.43.34:/usr/local/nginx/conf/cert4.2 證書(shū)配置
證書(shū)復(fù)制完成之后,可以對(duì)nginx配置文件進(jìn)行更改,使用vim命令編輯nginx配置文件,參考命令如下:
vim /usr/local/nginx/conf/nginx.conf
在vim界面把之前http的配置部分復(fù)制一份,復(fù)制之后修改監(jiān)聽(tīng)的端口(listen)為443,并在其后面添加ssl的信息,參考配置如下:
listen 443; ssl on; ssl_certificate cert/214905423420461.pem; ssl_certificate_key cert/214905423420461.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;4.3 重啟Nginx
修改配置文件之后,筆者需要測(cè)試nginx配置文件是否正確,參考命令如下:
nginx -t
當(dāng)nginx如果沒(méi)有出現(xiàn)error相關(guān)信息,基本配置沒(méi)有問(wèn)題,下面是我的nginx返回結(jié)果:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
nginx配置沒(méi)有問(wèn)題之后,筆者需要重啟nginx讓其生效,參考命令如下
nginx -s reload4.4 檢驗(yàn)效果
現(xiàn)在所有該做的工作都做好了,筆者可以通過(guò)瀏覽器來(lái)訪問(wèn)可以正常訪問(wèn),打開(kāi)如下URL。
https://www.xxx.com
瀏覽器地址欄顯示如下圖所示
如果看到瀏覽器,展示安全,并且顯示綠色就說(shuō)明大功告成了
五、問(wèn)題分析與總結(jié)到這里,雖然已經(jīng)成功部署了https,但是依然會(huì)產(chǎn)生很多附帶的問(wèn)題,下面是筆者后續(xù)所遇到的幾個(gè)問(wèn)題,以及解決方案。
5.1 重定向405錯(cuò)誤在部署https后,筆者很急切讓http全部重定向到https上來(lái),這個(gè)時(shí)候可能會(huì)在nginx的配置文件中加入下面的代碼
return 301 https://$server_name$request_uri;
這段代碼實(shí)際上是有缺陷的,他只能幫你重定向get請(qǐng)求,如果客戶(hù)端是以post請(qǐng)求,經(jīng)過(guò)301重定向后會(huì)變成get請(qǐng)求,最終導(dǎo)致服務(wù)器返回405的問(wèn)題;
除了405問(wèn)題以外,還有一個(gè)隱患,301重定向是永久重定向,在部署https的時(shí)候容易出現(xiàn)坑,如果使用了永久重定向,服務(wù)器出現(xiàn)問(wèn)題需要回滾的情況下,即使服務(wù)器回滾了,瀏覽器依然會(huì)跳轉(zhuǎn)到https,因?yàn)橛兄囟ㄏ蚓彺妫圆唤ㄗh使用301重定向,而應(yīng)該使用302;但是302也不好去處理post請(qǐng)求,所以還是用307把,配置代碼如下:
return 307 https://$server_name$request_uri;5.2 跨域問(wèn)題
啟用https證書(shū)后,會(huì)發(fā)現(xiàn)很多瀏覽器會(huì)存在跨域的問(wèn)題,下面附帶兩種解決方法。
5.2.1 自適應(yīng)協(xié)議在http域下加載https資源瀏覽器是允許的,但是https加載http的資源,瀏覽器會(huì)阻止,所以在前端頁(yè)面中的地址最好不要指定協(xié)議,可以吧"http://"或者"https://" 使用自適應(yīng)協(xié)議來(lái)替換 "http://",這樣瀏覽器將會(huì)自動(dòng)調(diào)用對(duì)應(yīng)域的資源,而不會(huì)出現(xiàn)https站點(diǎn)不能加載http資源問(wèn)題,而https請(qǐng)求http卻出現(xiàn)跨域問(wèn)題。
5.2.2 作用域設(shè)置http和https并不在同一個(gè)作用域,所以當(dāng)一些ajax請(qǐng)求時(shí),會(huì)出現(xiàn)跨域問(wèn)題,這個(gè)時(shí)候可以修改nginx配置文件,將其資源的作用域擴(kuò)大,把以下代碼放到http的配置項(xiàng)如下:
需要注意,如果讓網(wǎng)站的資源讓任意作用域都可以調(diào)用,那么會(huì)存在一個(gè)安全隱患,所以最好是指定幾個(gè)作用域,而不要全部放開(kāi)。
add_header "Access-Control-Allow-Origin" "*"; add_header "Access-Control-Allow-Credentials" "true"; add_header "Access-Control-Allow-Headers" "Origin, X-Requested-With, Content-Type, Accept, Connection, User-Agent, Cookie,Content-Type, Authorization"; add_header "Access-Control-Allow-Methods" "PUT,POST,GET,DELETE,OPTIONS";5.3 同時(shí)支持,分批上線(xiàn)
在部署https證書(shū)的時(shí)候,會(huì)遇到很多小問(wèn)題,一開(kāi)始筆者打算將其一步到位,后來(lái)發(fā)現(xiàn)小問(wèn)題不斷,比如前面的跨域問(wèn)題,以及301重定向問(wèn)題;
這些問(wèn)題看似不大,但是小問(wèn)題卻比較多,因此我建議大家在上線(xiàn)https的時(shí)候,最好分批上線(xiàn),滿(mǎn)足當(dāng)前需求即可,不要一下子把所有http都切換過(guò)來(lái)需要注意https加載http資源被阻止的問(wèn)題。
作者: 湯青松
微信:songboy8888
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/40074.html
摘要:當(dāng)點(diǎn)擊檢查配置之后,如果阿里云能夠正常訪問(wèn),則會(huì)在左側(cè)給出提示,現(xiàn)在可以返回證書(shū)列表,在列表中可以看到當(dāng)前狀態(tài)為審核中,如下圖審核因?yàn)椴恍枰藶楦深A(yù),所以很快就能下發(fā)證書(shū),筆者下發(fā)證書(shū)的時(shí)間大約是分鐘左右。 一、背景 筆者所在團(tuán)隊(duì)需要開(kāi)發(fā)ios的APP,而apptstore應(yīng)用商店審核需要應(yīng)用使用https,所以需要配置https證書(shū),筆者將此次配置的過(guò)程與遇到的一些問(wèn)題記錄下來(lái),方便...
摘要:此外,其也能夠提供強(qiáng)大的反向代理功能。是由為俄羅斯訪問(wèn)量第二的站點(diǎn)開(kāi)發(fā)的,第一個(gè)公開(kāi)版本發(fā)布于年月日。 keepalived+nginx 實(shí)現(xiàn)高可用雙機(jī)熱備 + 負(fù)載均衡架構(gòu) 1 準(zhǔn)備4個(gè)ubuntu16.04虛擬機(jī)(啟用網(wǎng)卡二并使用橋接模式):A服務(wù)器:192.168.0.103 主B服務(wù)器:192.168.0.104 主(備) 前端工程師學(xué)習(xí) Nginx ...
摘要:下需要為每個(gè)單獨(dú)進(jìn)行采集配置采集日志目錄,采集規(guī)則,存儲(chǔ)目標(biāo)等,不易維護(hù)。日志服務(wù)的日志架構(gòu)實(shí)踐我們提出基于阿里云日志服務(wù)的日志處理架構(gòu),用以補(bǔ)充社區(qū)的方案,來(lái)嘗試解決場(chǎng)景下日志處理的一些細(xì)節(jié)體驗(yàn)問(wèn)題。 摘要: 在Kubernetes服務(wù)化、日志處理實(shí)時(shí)化以及日志集中式存儲(chǔ)趨勢(shì)下,Kubernetes日志處理上也遇到的新挑戰(zhàn),包括:容器動(dòng)態(tài)采集、大流量性能瓶頸、日志路由管理等問(wèn)題。本文...
摘要:在上已經(jīng)有接近的數(shù)了,是目前最熱門(mén)的前端框架。將整個(gè)應(yīng)用打包發(fā)布,自動(dòng)試用進(jìn)行壓縮與優(yōu)化。毫無(wú)疑問(wèn),這些重?fù)?dān)都將壓在企業(yè)開(kāi)發(fā)人員身上團(tuán)隊(duì)之間如何高效協(xié)調(diào),快速交付產(chǎn)品,快速部署應(yīng)用,以及滿(mǎn)足企業(yè)業(yè)務(wù)需求,是開(kāi)發(fā)人員亟需解決的問(wèn)題。 React在Github上已經(jīng)有接近70000的 star 數(shù)了,是目前最熱門(mén)的前端框架。而我學(xué)習(xí)React也有一段時(shí)間了,現(xiàn)在就開(kāi)始用 React+Red...
閱讀 845·2021-10-25 09:48
閱讀 617·2021-08-23 09:45
閱讀 2509·2019-08-30 15:53
閱讀 1765·2019-08-30 12:45
閱讀 608·2019-08-29 17:21
閱讀 3423·2019-08-27 10:56
閱讀 2556·2019-08-26 13:48
閱讀 704·2019-08-26 12:24