學習過程中想要學教程中一樣,做個假的微信公眾號推送,不過去了微信開發文檔怎么一直說需要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