http升级https
系统版本
centos7 64位 bbr
确认基本配置是否完成
需要Nginx,具体安装步骤移步链接
使用acme.sh生成并安装证书(http方式)
安装acme.sh,此时acme.sh会安装到~/.acme.sh/,注意是个隐藏的目录
curl https://get.acme.sh | sh
创建bash,方便调用
alias acme.sh=~/.acme.sh/acme.sh
验证所有权,并生成证书
acme.sh --issue -d [域名] -w [网页放置路径]
此时可能操作不正确会有报错,如果报错解决,务必将acme.sh生成的[域名]文件夹删掉!否则将一直验证错误。期间可能用到的命令如下
ls //列出当前文件夹下文件 rm -rf [文件夹] //删除文件夹及文件夹下所有文件
注意一小时内限制获取5次证书
Copy证书,需要先创建一个存放的证书的文件夹
cd /usr/local/nginx mkdir ssl acme.sh --installcert -d [域名] --key-file /usr/local/nginx/ssl/[domain].key --fullchain-file /usr/local/nginx/ssl/fullchain.cer
这里的[domain]指[域名]去掉“.com”
编辑Nginx.conf(配置文本)
vi /usr/local/nginx/conf/nginx.conf
配置文本修改内容:
server { listen 80; server_name [域名]; rewrite ^(.*)$ https://${server_name}$1 permanent; } server { listen 443 ssl; server_name [域名]; ssl on; ssl_certificate /usr/local/nginx/ssl/fullchain.cer; ssl_certificate_key /usr/local/nginx/ssl/www.b0110.key; root [网页存放路径]; index index.html; error_page 404 /home/html/404.html; }
重启nginx,不是重新加载,官方文档道,reload经测试并不是重新加载证书
/usr/local/nginx/sbin/nginx -s stop /usr/local/nginx/sbin/nginx
更新acme.sh,并开启自动升级
acme.sh --upgrade --auto-upgrade
关闭自动升级
acme.sh --upgrade --auto-upgrade 0
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心
后端接口配置
当你调试完网页成功之后,你会发现你之前的接口都连不上了,这是因为你的接口地址协议没有变更https。变更后,还需要一些其他的配置,让我们来操作一下
首先,网页的接口url都要改成https协议的
然后是Nginx的配置,端口需要用Nginx反向代理一下,因为你的后端接口(我是用node写的)是用http模块写的,那么这时你会想用https模块去重写,不过那样生产环境下调试证书验证的时候不是很麻烦吗?
将配置文本中的第二个server加入:
location /server/ { proxy_pass http://localhost:[监听端口号]/; }
重启Nginx
/usr/local/nginx/sbin/nginx -s reload