flask 設置https請求 訪問flask服務器


 

學習過程中想要學教程中一樣,做個假的微信公眾號推送,不過去了微信開發文檔怎么一直說需要https的請求(教學中沒有說需要https,一直是http)

 

但是我的服務器只能使用http請求訪問,如果硬是要在url中添加https 則會顯示沒有這個網站

 

於是我就想法讓https請求也能請求到我的服務器域名上  

我的域名是在阿里雲買的,所以我就直接在阿里雲上購買了證書,購買使用的是免費的1年證書

流程如下

 

 

購買之后顯示,但是還沒有綁定域名,所以需要申請證書綁定這個域名

 

點擊申請,根據彈出的頁面進行一個填寫    我買的域名是 www.zengyimin.xyz  

根據下一步不斷填寫信息,等待審核,出現如下畫面表示綁定域名成功

點擊下載 ,會下載一個壓縮包 

包名是綁定的域名

包中含有pem和key 證書和密匙,解壓

接下來在放置 nginx 的服務器上進行操作 ,進入nginx的配置目錄 (我是ubuntu) 

cd /etc/nginx 

該目錄新建一個文件夾 放置證書和key

mkdir cert

將解壓的文件上傳至該文件夾

 

 進入nginx的配置文件 (我的nginx版本不同,有些操作和你們不同,以下我的個人講解你們看看就好 )

 其中nginx.conf 是全部的配置文件集合, sites-acailable 和 siter-enabled  文件夾含有一些服務器的配置

 如果你在sites中配置完成,啟動nginx 時                   nginx會帶上nginx.conf 配置文件啟動,配置文件會include導入 sites 中的配置文文件

 

 同時sites 中的文件貌似是鏡像文件? 更改一個另一個也會變

 

我的配置文件 進入  sites-enabled         vim更改配置文件 default

 

 這是我原本 http 80 端口的server服務配置         http不需要證書,所以不需要證書設置

 

 https 443 的配置 ,在該文件中添加一個 server 服務

 

 

 重啟ngxin     

service nginx restart    

 

可以嘗試在url中使用https請求nginx綁定的域名(我是一台機,其實就是flask服務器綁定的域名)了

免費證書會在google瀏覽器訪問時提示有問題,所以需要證書還是購買有服務的比較好

http://www.zengyimin.xyz/api/v1.0/log   

https://www.zengyimin.xyz/api/v1.0/log

 

 

 

都是一樣的訪問,不過http和https的請求都能請求,區別也不大... 

 

除非用戶輸入http請求會自動跳轉https的請求

所以我個人的最終方案

 

# 所有的往http80端口的請求都會被 rewrite 進行一個攔截 重定向 將http 請求改為https  

server {                                 listen
80; server_name www.zengyimin.xyz; rewrite ^(.*)$ https://$host$1 permanent;      # <----------------- 重點 這是重定向 location / { index index.html index.htm; } }
# 這是新增的 https 的server server { listen
443; server_name www.zengyimin.xyz; ssl on;                           root html; index index.html index.htm; ssl_certificate cert/2568867_www.zengyimin.xyz.pem;      # 證書 ssl_certificate_key cert/2568867_www.zengyimin.xyz.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; location / { proxy_pass http://127.0.0.1:5001;            # https請求轉發到服務器ip地址 proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }

 

 

最終所有前往nginx服務器的請求都會被重定向到https請求

 

 

 

https://help.aliyun.com/document_detail/98728.html?spm=5176.2020520163.0.0.7bb9d5OKd5OKj5

 https://lufficc.com/blog/configure-nginx-as-a-web-server


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM