1. http升级https
    1. 确认基本配置是否完成
    2. 使用acme.sh生成并安装证书(http方式)
    3. 后端接口配置

http升级https

系统版本

centos7 64位 bbr

  1. 确认基本配置是否完成

    需要Nginx,具体安装步骤移步链接

  2. 使用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 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心

  3. 后端接口配置

    当你调试完网页成功之后,你会发现你之前的接口都连不上了,这是因为你的接口地址协议没有变更https。变更后,还需要一些其他的配置,让我们来操作一下

    首先,网页的接口url都要改成https协议的

    然后是Nginx的配置,端口需要用Nginx反向代理一下,因为你的后端接口(我是用node写的)是用http模块写的,那么这时你会想用https模块去重写,不过那样生产环境下调试证书验证的时候不是很麻烦吗?

    将配置文本中的第二个server加入:

    location /server/ {
            proxy_pass http://localhost:[监听端口号]/;
    }

    重启Nginx

    /usr/local/nginx/sbin/nginx -s reload