学习过程中想要学教程中一样,做个假的微信公众号推送,不过去了微信开发文档怎么一直说需要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