• 使用let's encrypt代替阿里云免费证书


      

        去年11月底开始着手使用https来代替http,提升安全性,同时也能避免网络运营商的广告。因为用的阿里云的全家桶(ECS+域名+CDN+OSS+直播等),正好看到阿里云上有免费的SSL证书,虽然有一年的期限,但想着先上了再说,一年之后,也许就全免费了呢。这一年期间,使用阿里云的免费证书也是各种坑,首先不知道每个账户只有20个(去年这个时候是连说明都没有的,不留工单问,没人知道),就一个劲的申请,结果浪费了很多(好像是说审核关闭的,还是吊销的,也占用1个指标,我去)。

        今年9月份的时候,微信公众号端又要开发一些东西,就新搭了服务器,但是不想去折腾阿里云的免费SSL证书了。正好,let's的免费证书的工具也比去年有更新,很多浏览器都支持了,据说明年还支持泛域名,所以,就考虑用这个啦。至于其他的签发商更安全啊,更有名啊,更屌B啊,比如说加密算法之类更牛啊等,这些就不考虑了,反正let's的目前完全够用了,又不是天天有几百万的资金通过项目流动(流汗)。至于let's一次签发90天的问题,一个crontab就解决。

            1)安装let's(基于centos,其他系统大同小异)

    yum install epel-release
    cd /data/certificate
    wget https://dl.eff.org/certbot-auto --no-check-certificate
    chmod +x ./certbot-auto
    ./certbot-auto -n


                说明,./certbot-auto -n只是用来安装依赖包的,也可以跳过直接到下面的生成证书的步骤,国内VPS或服务器上使用的话建议先修改为国内的pip源。

            2)生成证书
                首先要将相应的域名,解析到服务器。(如本例中的www.chen.net)
                单域名生成证书:

    ./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net

                多域名单目录生成单证书:(即一个网站多个域名使用同一个证书)

    ./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net -d help.chen.net

                多域名多目录生成一个证书:(即一次生成多个域名的一个证书)

    ./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net -d help.chen.net -w /data/wwwroot/web -d www.chen.cn -d chen.cn

            3)结果

            IMPORTANT NOTES:
            - Congratulations! Your certificate and chain have been saved at
            /etc/letsencrypt/live/www.chen.net/fullchain.pem. Your cert will
            expire on 2018-02-15. To obtain a new or tweaked version of this
            certificate in the future, simply run certbot-auto again. To
            non-interactively renew *all* of your certificates, run
            "certbot-auto renew"
            - If you like Certbot, please consider supporting our work by:

            Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
            Donating to EFF: https://eff.org/donate-le

            就是生成成功。

        4)配置nginx
      
      注意图中红色部分,请使用 fullchain.pem(不是chain.epm),替换掉原来阿里云下载的pem,否则的话,在安卓端,会出现打开空白的问题。

     5)配置crontab
      * * * */1 * /data/certificate/certbot-auto renew --disable-hook-validation

     6)在阿里云上,OSS和CDN的配置上,选择直接输入证书内容替换原来直接选择的阿里云证书,就可以了。

      注意事项:

      1、因为默认环境是不允许访问以"."开头的隐藏文件及目录的,所以访问http://abc.com/.well-known/acme-challenge/**** 这个链接的话返回403错误,所以必须要将对应虚拟主机配置文件里的
      location ~ /.
      {
        deny all;
      }
      这段配置删掉或注释掉或在这段配置前面加上
      location ~ /.well-known {
        allow all;
      }

      以上配置代码,然后重启nginx。

  • 相关阅读:
    使用NHibernate(1)--资料汇总
    mono上部署web程序初体验
    一次简单的ORM调研
    【设计模式】02-评判代码质量的标准?如何写出高质量代码?
    【设计模式】01-初识设计模式
    【ARTS】004-第四周(2020.06.15-2020.06.21)
    【leetcode】14-Longest Common Prefix
    【ARTS】003-第三周(2020.06.08-2020.06.14)
    【行成于思】04-读《如何超过大多数人》有感
    【leetcode】009-Palindrome Number
  • 原文地址:https://www.cnblogs.com/plongver/p/7844715.html
Copyright © 2020-2023  润新知