美文网首页
简单记录阿里云ECS配置let's encrypt证书

简单记录阿里云ECS配置let's encrypt证书

作者: 头上有灰机 | 来源:发表于2017-09-07 16:41 被阅读0次

    2017-12-20 11:27更新
    不知道有没有过1个小时,但是试了下去掉--dry-run后,直接显示申请成功。
    之后按照之前弄的nginx的配置,配置下新的域名,重启nginx搞定。

    2017-12-20 11:20更新

    今天要添加另一个域名,一直用网上找到的各种带--nginx参数的命令,
    一直都报错

    Domain: xxx.yy
    Type:   unauthorized
    Detail: Incorrect validation certificate for tls-sni-01 challenge.
    Requested
    ******************************************************************.acme.invalid
    from xxx.xxx.xxx.xxx:443. Received 1 certificate(s), first
    certificate had names
    "******************************************************************.acme.invalid,
    dummy"
    

    后面又开始报错什么太多requests,之后得知是申请证书失败的次数太多,已经被拒了,下次尝试时,一定记得加上--dry-run参数,可以测试是否成功,成功后,直接去掉该参数,就可以只申请一次。

    之后看到
    https://stackoverflow.com/questions/45906369/lets-encrypt-check-the-previous-certificat-and-throw-an-error
    中问题的评论有一个命令,去掉--nginx改用--webroot -w /home/xxx/public
    sudo certbot certonly --webroot -w /home/xxx/public -d xxx.yy
    但是报错Invalid response from http://xx.xx/.well-known/acme-challenge/nJft0J8ESp_VxSLq5HuFUg0qZo2ylsEyNvjHhgy6RG0,试着访问这个网址,nginx返回403错误,之后在https://github.com/letsencrypt/acme-spec/issues/221这里看到,在nginx的配置中加上

    location ^~ /.well-known/acme-challenge/ {
        # the usual settings
    }
    

    再运行命令,提示- The dry run was successful.
    等下午证书请求限制解除后,再去掉--dry-run参数。

    ==========================================

    2017-12-7更新

    6号证书到期,今天找了半天怎么续期,一直报错。
    最后去certbot官网,一条命令搞定certbot renew

    ==========================================

    安装certbot
    certbot官网选择正确好,按照流程安装,
    https://certbot.eff.org/#centosrhel7-nginx

    按照后运行
    sudo certbot --nginx certonly
    此时提示pyopenssl版本低,但是yum更新却提示已经是最新

    之后按照网上的搜索结果,尝试过pip安装certbot,一直各种包错误。

    之后按照https://www.yuzhi100.com/article/centos-7-certbot-pyopenssl-missing-required-functionality的方法手动更新pyopenssl

    之后又提示'module' object has no attribute 'SSL_ST_INIT'网上搜索无果,之后好像是通过更新了一个python模块才行的具体哪个忘了

    之后运行命令,提示nginx配置文件找不到,要在命令后面指定nginx配置文件,
    如下:
    sudo certbot --nginx certonly --nginx-server-root /usr/local/nginx/conf

    之后填写一些信息,邮箱什么的,到最后选择nginx配置中哪个域名用来生成证书,结果一直出错,提示timeout
    网上有的说是阿里的dns问题,有的说国内几个常用的dns都不行。
    把域名的dns解析换成CloudXNS后,还是不行。
    最后在阿里云ECS发现没有打开443端口,之前一直以为这个端口可能默认就打开了,所以没考虑这个问题,果然打开这个端口之后就生成成功了。

    之后配置nginx,完全按照https://www.freehao123.com/lets-encrypt/中第 四—8 点配置,配置完后,发现网站首页怎么都显示不安全,折腾一阵之后无果。结果同事用360浏览器打开时,提示网站中包含不安全的内容。

    经过排查,发现首页中"QQ交谈"这个按钮的图片是http的,把代码中的http改成https之后,自动获取的那个图片还是http的,结果直接把该图片的地址加个s之后,放到相应的img标签中,搞定。

    最后,参考https://laravel-china.org/topics/206/deploying-https-and-security-tuning-under-nginx,把http自动跳转到https。

    相关文章

      网友评论

          本文标题:简单记录阿里云ECS配置let's encrypt证书

          本文链接:https://www.haomeiwen.com/subject/xqbijxtx.html