最近由于微信小程序需要把http域名升级为https,作此文记录一下踩坑经历
第一步:在阿里云或者腾讯云申请免费SSL证书
以阿里云为例,搜索SSL证书,打开之后,选择购买证书(有免费的,也需要走购买流程)如图
购买成功之后在SSL证书列表找到证书,然后点证书申请,输入域名等信息,提交就可以了,大概10分钟审核通过
就可以下载证书了,由于我用的nginx,所以服务器类型选nginx,下载的文件解压之后就有pem/key两个文件了。
第二步:安装配置nginx
1.cd到nginx安装包路径
2.编译
./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tem/nginx/client --http-proxy-temp-path=/var/tem/nginx/proxy --http-fastcgi-temp-path=/var/tem/nginx/fcgi --with-http_stub_status_module
3.安装
make && make install
备注:查看安装路径
whereis nginx
4.启动(注意路径事etc里面的,第三步修复nginx.conf也是修改这里的)
nginx -c /etc/nginx/nginx.conf
5.校验配置文件是否正确(如果修改了配置文件)
nginx -t -c /etc/nginx/nginx.conf
6.防火墙配置允许HTTP和HTTPS通信
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
7.停止/启动nginx服务
nginx -s stop
nginx -s start
8.查看nginx是否启动成功
ps -ef | grep nginx
第三步:配置HTTPS
1.连接服务器,找到nginx.conf目录,把第一步获取的pem/key上传进去
2.打开上面路径里的nginx.conf
3.找到这个节点,替换如下,具体见注释,pem/key名字需要改成对应的
我的pem/key在nginx.conf同目录,所以不需要写路径,只写名字就可以了
# HTTPS server
#
server {
listen 443 ssl;
server_name localhost;
ssl_certificate www.soulkey.live.pem; #将**.pem替换成您证书的文件名。
ssl_certificate_key www.soulkey.live.key; #将**.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 / {
root html;
index index.html index.htm;
}
}
4.然后关闭并启动,就可以通过https访问啦
nginx -s stop
nginx -c /etc/nginx/nginx.conf
备注:如果是阿里云的服务器,需要在安全组里配置响应端口才能正常访问。