Nginx配置免费HTTPS证书

  • A+
所属分类:Nginx

  Let's Encrypt是很火的一个免费SSL证书发行项目,自动化发行证书,证书有90天的有效期。适合个人使用或者临时使用,不用再忍受自签发证书不受浏览器信赖的提示。去年VPS侦探曾经说过Let's Encrypt的使用教程,但是Let'sEncrypt已经发布了新的工具certbot,虽然是新的工具,但是生成证书的使用方法和参数是基本一致的,证书续期更简单了。但是目前看certbot在一些老版本的Linux发行版上的兼容性还是有问题的,特别是在CentOS 5上因为python版本过低是无法用的,CentOS 6上需要先安装epel才行,当然也有很多第三方的工具你也可以自己去尝试一下。

安装certbot-auto

如果是CentOS 6、7,先执行:yum install epel-release

cd /root/
wget https://dl.eff.org/certbot-auto --no-check-certificate
chmod +x ./certbot-auto
./certbot-auto -n

签发证书

./certbot-auto certonly --standalone --email 952773925@qq.com --agree-tos -d 
www.liuyalei.top -d liuyalei.top

-d指定多于名,生成的证书会存在:/etc/letsencrypt/live/域名/ 目录下

[root@web tools]# ll /etc/letsencrypt/live/www.liuyalei.top/
 lrwxrwxrwx 1 root root  40 Oct 27 12:50 cert.pem -> ../../archive/www.liuyalei.top/cert1.pem
lrwxrwxrwx 1 root root  41 Oct 27 12:50 chain.pem -> ../../archive/www.liuyalei.top/chain1.pem
lrwxrwxrwx 1 root root  45 Oct 27 12:50 fullchain.pem -> ../../archive/www.liuyalei.top/fullchain1.pem
lrwxrwxrwx 1 root root  43 Oct 27 12:50 privkey.pem -> ../../archive/www.liuyalei.top/privkey1.pem

证书说明

cert.pem #公钥
privkey.pem #私钥
chain.pem #中间证书链
fullchain.pem #全证书链

Nginx配置SSL

[root@web vhosts]# cat www.liuyalei.top.conf 
server {
         listen       80;
         server_name  liuyalei.top www.liuyalei.top;
         return       301 https://$server_name/$request_uri;

}


server {
        listen 443;
        server_name liuyalei.top www.liuyalei.top;

         ssl                  on;
         ssl_certificate      /etc/letsencrypt/live/www.liuyalei.top/fullchain.pem;
         ssl_certificate_key  /etc/letsencrypt/live/www.liuyalei.top/privkey.pem;
         ssl_trusted_certificate /etc/letsencrypt/live/www.liuyalei.top/chain.pem;
         ssl_session_timeout  5m;
         ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
         #启用TLS1.1、TLS1.2要求OpenSSL1.0.1及以上版本,若您的OpenSSL版本低于要求,请使用 ssl_protocols TLSv1;
         ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;
         ssl_prefer_server_ciphers   on;

}

续签证书

Let's Encrypt 生成的免费证书为3个月时间,但是我们可以无限次续签证书

[root@web vhosts]# cd /root/tools/
[root@web tools]# ./certbot-auto renew
/opt/eff.org/certbot/venv/lib/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of cryptography will drop support for Python 2.6
DeprecationWarning
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/www.liuyalei.top.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal
-------------------------------------------------------------------------------
The following certs are not due for renewal yet:
/etc/letsencrypt/live/www.liuyalei.top/fullchain.pem (skipped)
No renewals were attempted.
-------------------------------------------------------------------------------

到期时间小于30天才能续签,否则会提示上面证书未到期,如果证书没有过期,那么证书不会更新。

续签完成要reload nginx

[root@web tools]# /usr/local/nginx/sbin/nginx -t
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@web tools]# /usr/local/nginx/sbin/nginx -s reload
YaLei

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: