前言
因为要写个微信小程序,要请求我自己服务器上的接口必须将我的域名添加至白名单,而且必须是要https访问,故需此番折腾。
同时,因为我在服务器上配置的是Flask项目,详细在Ubuntu 16.04上部署Flask,nginx的配置跟正常的稍微有些不同。
第一步,搞个证书
本人因为用的腾讯云的服务器,所以在腾讯云申请了个一年的免费证书,其他云服务器商应该也有免费证书,至于OpenSSL
就不适合本教程了。
第二步,安装证书
简单来说,就是把从腾讯云、阿里云下载下来的证书挪到服务器上去,我是把证书上传到git服务器,然后在服务器端git pull
下来,证书放哪里都可以
第三步,配置nginx
默认的nginx配置文件是nginx.conf
,因为我部署的Flask项目,配置文件不同
sudo nano /etc/nginx/sites-available/myproject
添加内容如下
server {
listen 80;
server_name www.ymhd.xyz;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/ubuntu/myproject/myproject.sock;
}
# 下面是配置https内容
listen 443;
ssl on;
ssl_certificate /usr/local/ymhd/1_www.ymhd.xyz_bundle.crt;
ssl_certificate_key /usr/local/ymhd/2_www.ymhd.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;
}
其中特别注意的是,ssl_certificate
和ssl_certificate_key
后面的内容分别是你证书中crt
和key
文件的绝对路径
最后,重启
重启nginx,重启服务
sudo systemctl restart nginx
sudo systemctl restart myproject