国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Nginx部署HTTPS服務過程與異常處理實踐

Scliang / 1723人閱讀

摘要:當點擊檢查配置之后,如果阿里云能夠正常訪問,則會在左側給出提示,現在可以返回證書列表,在列表中可以看到當前狀態為審核中,如下圖審核因為不需要人為干預,所以很快就能下發證書,筆者下發證書的時間大約是分鐘左右。

一、背景

筆者所在團隊需要開發ios的APP,而apptstore應用商店審核需要應用使用https,所以需要配置https證書,筆者將此次配置的過程與遇到的一些問題記錄下來,方便自己和讀者后續參考。

二、操作概要

申請證書與認證

證書下載與配置

問題分析與總結

三、申請證書與認證

要搭建https服務首先需有SSL證書,證書通常是在第三方申請,在阿里云的安全服務中有SSL證書這一項,可以在里面申請免費的證書;

也可以在自己電腦中生成,雖然也能完成加密,但是瀏覽器是不認可的,因此最好還是去第三方申請
3.1 證書申請

阿里云提供免費的證書,不需要人工審核,用來做測試是非常不錯的選擇,申請地址如下URL。

https://common-buy.aliyun.com/?spm=5176.2020520163.cas.1.1aa12b7aWWn20O&commodityCode=cas#/buy

免費型的證書隱藏的比較深,想要申請免費證書需要先選擇 1個域名->Symantec->免費型 ,所以讀者這里需要注意一下,如下圖參考。

選擇之后,一直惦記下一步,便可購買完成,免費購買證書之后筆者需要回到證書控制臺,在控制臺有一個補全信息的鏈接地址,需要通過此地址補充申請人的聯系信息,參考下圖填寫

3.2 域名驗證

補全個人信息之后,筆者還需要給阿里云驗證當前域名是屬于本人的,驗證方式有兩種,第一種是通過dns解析認證,第二種是通過上傳驗證文件認證,筆者這里采用的是驗證文件認證,首先需要下載文件,如下圖

在下載驗證文件完成之后,筆者需要把文件放到服務器中去,這里提供一條復制命令

scp ~/Downloads/fileauth.txt  tangqingsong@192.168.43.34:~/

將驗證文件復制到服務器之后,筆者還需要將驗證文件放到站點對應目錄,參考命令如下:

mkdir -p /website/.well-known/pki-validation  &&  cp  fileauth.txt  /website/.well-known/pki-validation/

現在筆者要驗證文件放置的位置是否正確,筆者通過兩種方式進行了驗證,分別是手動驗證,和阿里云驗證。

3.2.1 手動驗證

手動驗證的目的是首先確保文件位置放置是否正確,可以通過訪問站點的url是否成功進行判斷,比如筆者可以訪問如下URL,如果返回如果頁面能夠正常打開,并且可以看到某些值,則代表配置成功。

http://www.songboy.net/.well-known/pki-validation/fileauth.txt
3.2.2 通過阿里云來驗證

在確保文件放置正確之后,關鍵的是能讓阿里云能訪問到,阿里云這里提供了一個檢查配置的功能,在下載驗證文件頁面,有一個檢測配置的鏈接,單擊之后便可進行檢查,如下圖。

當點擊 檢查配置 之后,如果阿里云能夠正常訪問,則會在左側給出提示,現在可以返回證書列表,在列表中可以看到當前狀態為審核中,如下圖

審核因為不需要人為干預,所以很快就能下發證書,筆者下發證書的時間大約是2分鐘左右。

四 證書下載與配置 4.1 證書下載

證書簽發之后,可以在列表中可以看到狀態欄中為 已簽發 ,同時操作欄可以下載以及查看詳情等,如下圖所示

點擊下載后,會跳轉到下載詳情頁面,在下載詳情頁可以選擇自己相對應的web服務,比如筆者使用nginx,當選擇nginx之后,下方還會很貼心的提示如何配置,現在筆者下載nginx配置文件。

下載配置文件之后,筆者需要將其解壓,解壓之后可以看見里面包含了兩個證書文件,如下圖所示

接著需要把這兩個證書文件給復制到服務器當中去,首先需要在服務器創建對應的文件夾,參考命令如下

cd  /usr/local/nginx/conf/  &&  mkdir cert    #此命令在服務器執行

在服務器創建完成對應文件夾之后,執行命令將證書文件復制到服務器中,參考命令如下:

scp ~/Downloads/214905423420461/*  tangqingsong@192.168.43.34:/usr/local/nginx/conf/cert
4.2 證書配置

證書復制完成之后,可以對nginx配置文件進行更改,使用vim命令編輯nginx配置文件,參考命令如下:

vim /usr/local/nginx/conf/nginx.conf

在vim界面把之前http的配置部分復制一份,復制之后修改監聽的端口(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

修改配置文件之后,筆者需要測試nginx配置文件是否正確,參考命令如下:

nginx -t 

當nginx如果沒有出現error相關信息,基本配置沒有問題,下面是我的nginx返回結果:

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配置沒有問題之后,筆者需要重啟nginx讓其生效,參考命令如下

nginx -s reload
4.4 檢驗效果

現在所有該做的工作都做好了,筆者可以通過瀏覽器來訪問可以正常訪問,打開如下URL。

https://www.xxx.com

瀏覽器地址欄顯示如下圖所示

如果看到瀏覽器,展示安全,并且顯示綠色就說明大功告成了

五、問題分析與總結

到這里,雖然已經成功部署了https,但是依然會產生很多附帶的問題,下面是筆者后續所遇到的幾個問題,以及解決方案。

5.1 重定向405錯誤

在部署https后,筆者很急切讓http全部重定向到https上來,這個時候可能會在nginx的配置文件中加入下面的代碼

return      301 https://$server_name$request_uri;

這段代碼實際上是有缺陷的,他只能幫你重定向get請求,如果客戶端是以post請求,經過301重定向后會變成get請求,最終導致服務器返回405的問題;

除了405問題以外,還有一個隱患,301重定向是永久重定向,在部署https的時候容易出現坑,如果使用了永久重定向,服務器出現問題需要回滾的情況下,即使服務器回滾了,瀏覽器依然會跳轉到https,因為有重定向緩存,所以不建議使用301重定向,而應該使用302;但是302也不好去處理post請求,所以還是用307把,配置代碼如下:

return      307 https://$server_name$request_uri;
5.2 跨域問題

啟用https證書后,會發現很多瀏覽器會存在跨域的問題,下面附帶兩種解決方法。

5.2.1 自適應協議

在http域下加載https資源瀏覽器是允許的,但是https加載http的資源,瀏覽器會阻止,所以在前端頁面中的地址最好不要指定協議,可以吧"http://"或者"https://" 使用自適應協議來替換 "http://",這樣瀏覽器將會自動調用對應域的資源,而不會出現https站點不能加載http資源問題,而https請求http卻出現跨域問題。

5.2.2 作用域設置

http和https并不在同一個作用域,所以當一些ajax請求時,會出現跨域問題,這個時候可以修改nginx配置文件,將其資源的作用域擴大,把以下代碼放到http的配置項如下:

需要注意,如果讓網站的資源讓任意作用域都可以調用,那么會存在一個安全隱患,所以最好是指定幾個作用域,而不要全部放開。
    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 同時支持,分批上線

在部署https證書的時候,會遇到很多小問題,一開始筆者打算將其一步到位,后來發現小問題不斷,比如前面的跨域問題,以及301重定向問題;

這些問題看似不大,但是小問題卻比較多,因此我建議大家在上線https的時候,最好分批上線,滿足當前需求即可,不要一下子把所有http都切換過來需要注意https加載http資源被阻止的問題。


作者: 湯青松

微信:songboy8888

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29250.html

相關文章

  • Nginx部署HTTPS服務過程異常處理實踐

    摘要:當點擊檢查配置之后,如果阿里云能夠正常訪問,則會在左側給出提示,現在可以返回證書列表,在列表中可以看到當前狀態為審核中,如下圖審核因為不需要人為干預,所以很快就能下發證書,筆者下發證書的時間大約是分鐘左右。 一、背景 筆者所在團隊需要開發ios的APP,而apptstore應用商店審核需要應用使用https,所以需要配置https證書,筆者將此次配置的過程與遇到的一些問題記錄下來,方便...

    lavor 評論0 收藏0
  • Nginx

    摘要:此外,其也能夠提供強大的反向代理功能。是由為俄羅斯訪問量第二的站點開發的,第一個公開版本發布于年月日。 keepalived+nginx 實現高可用雙機熱備 + 負載均衡架構 1 準備4個ubuntu16.04虛擬機(啟用網卡二并使用橋接模式):A服務器:192.168.0.103 主B服務器:192.168.0.104 主(備) 前端工程師學習 Nginx ...

    syoya 評論0 收藏0
  • LC3視角:Kubernetes下日志采集、存儲處理技術實踐

    摘要:下需要為每個單獨進行采集配置采集日志目錄,采集規則,存儲目標等,不易維護。日志服務的日志架構實踐我們提出基于阿里云日志服務的日志處理架構,用以補充社區的方案,來嘗試解決場景下日志處理的一些細節體驗問題。 摘要: 在Kubernetes服務化、日志處理實時化以及日志集中式存儲趨勢下,Kubernetes日志處理上也遇到的新挑戰,包括:容器動態采集、大流量性能瓶頸、日志路由管理等問題。本文...

    Guakin_Huang 評論0 收藏0
  • React 實踐項目 (五)Docker Nginx 部署 React

    摘要:在上已經有接近的數了,是目前最熱門的前端框架。將整個應用打包發布,自動試用進行壓縮與優化。毫無疑問,這些重擔都將壓在企業開發人員身上團隊之間如何高效協調,快速交付產品,快速部署應用,以及滿足企業業務需求,是開發人員亟需解決的問題。 React在Github上已經有接近70000的 star 數了,是目前最熱門的前端框架。而我學習React也有一段時間了,現在就開始用 React+Red...

    EscapedDog 評論0 收藏0

發表評論

0條評論

Scliang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<