原文链接:https://zhuanlan.zhihu.com/p/49444696

    偶然看到acme.sh这个可以快速配置全站的https,这么好的神器赶紧试一下。证书是从Let’s Encrypt - Free SSL/TLS Certificates免费申请的。当然,除了免费的证书之外也可以去对应的SSL证书提供商处进行购买,如阿里与、godaddy等。
    HTTPS与HTTP的区别:

    • HTTPS的URL由http://起始且默认使用80端口
    • HTTPS的URL由https://起始且默认使用443端口
    • HTTP是不安全的,攻击者通过监听和中间人攻击等手段,可以获取网站帐户和敏感信息等
    • HTTPS被设计为可防止前述攻击,并在正确配置时被认为是安全的
    • 网站没有开启HTTPS,浏览器可能会提示网站非安全;如Chrome会有对应的警告提示

    在日常开发中也有一些是必须要用到HTTPS的,比如小程序使用到的域名必须是HTTPS等,所以HTTPS还是比较重要的。

    1、安装

    1. $ curl https://get.acme.sh | sh

    2、生成证书
    直接命令申请证书(http://wifihi.cn是我的域名,换成需要配置的目标域名即可)

    1. # Please specify at least one validation method:
    2. # '--webroot', '--standalone', '--apache', '--nginx' or '--dns' etc.
    3. $ acme.sh --issue --nginx -d wifihi.cn -d '*.wifihi.cn'
    • 120秒的等待时间后会显示成功信息,以及生成的证书存放路径

    升级 https - 图1

    3、更新配置Nginx配置文件

    原来是有配置ssl证书的,所以只需要把对应的证书路径进行替换即可。

    1. # /etc/nginx/nginc.conf
    2. ssl_certificate /root/.acme.sh/wifihi.cn/wifihi.cn.cer;
    3. ssl_certificate_key /root/.acme.sh/wifihi.cn/wifihi.cn.key;

    如果原本没有配置ssl证书的,可以在nginx.conf里面加上一段配置信息:

    1. server {
    2. listen 443 ssl;
    3. server_name wifihi.cn;
    4. ssl_certificate /root/.acme.sh/wifihi.cn/wifihi.cn.cer;
    5. ssl_certificate_key /root/.acme.sh/wifihi.cn/wifihi.cn.key;
    6. access_log /var/log/nginx/host.access.log main;
    7. }

    4、验证配置文件重启nginx

    • 验证一下Nginx配置文件是否修改正确

      1. $ nginx -t
    • 重启Nginx

      1. $ service nginx restart

    5、打开浏览器,验证https配置是否成功

    注意对应的子域需要在阿里云进行配置。