centos7配置nginx使用let’s Encrypt证书

let’s Encrypt提供的免费的ssl证书申请流程已经非常简便,使用度也非常高。证书的申请方法有很多中,这里记录最简单的一种。let’s Encrypt免费证书有效期90天,续用更新会相应减少期限,各种续期提醒会准时发送邮件到域名配置的邮箱

流程及注意:

有些let’s Encrypt证书安装方法需要用到python2.7及以上,centos6默认是python2.6版本,需要做相应升级。centos7可以直接跳过。

申请证书之前如果80或443端口被监听,例如nginx已经在使用,就必须把nginx停掉,不然会申请失败。

安装过程超简单

先下载let’s Encrypt指定的安装控件

git clone https://github.com/certbot/certbot

有可能会遇到报错,多是源或者网络的问题,按报错信息基本能自行解决

cd letsencrypt

./letsencrypt-auto certonly --standalone --email [email protected] -d xxx1.org -d xxx2.org

其中email填入邮箱,-d填入有效域名,可单个可多个

./letsencrypt-auto可以有其他指令操作,可以-help查看

申请指令执行后会自动更新环境需要的各种依赖,当然也有跳过的参数,日志中有提示--no-bootstrap

然后简单的手动同意流程

当看到- Congratulations!开头的一段日志就OK了。

 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/pushweb.onethird.com.cn/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/pushweb.onethird.com.cn/privkey.pem
   Your cert will expire on 2018-07-26. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again. To non-interactively renew *all* of your
   certificates, run "letsencrypt-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

因为是外网服务器,偶尔会有访问不通的情况,多试几次或者换一个时间段试。

证书申请成功之后在/etc/letsencrypt/live/下会生成相应文件

cert.pem  - Apache服务器端证书
chain.pem  - Apache根证书和中继证书
fullchain.pem  - Nginx所需要ssl_certificate文件

privkey.pem - 安全证书KEY文件

主要用到fullchain.pem,privkey.pem两个文件

nginx主要配置

server {
listen       443;
server_name xxx.cn;
        location /{
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_connect_timeout   3;
        proxy_send_timeout      30;
        proxy_read_timeout      30;
        proxy_pass http://xxx;
        }
    ssl on;
    ssl_certificate /etc/letsencrypt/live/xxx.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/xxx.cn/privkey.pem;
   ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;

   ssl_prefer_server_ciphers   on;

}

再刷新nginx配置


证书更新

在let’s Encrypt安装目录下

./certbot-auto renew --force-renew

有可能会提示python版本问题,如果是python2.7以下的就需要升级,注意重新配置2.6的引用,不然命令行会失效


猜你喜欢

转载自blog.csdn.net/lin252552/article/details/80164264