Let's Encrypt提供的SSL证书是免费的!!!


由于Let's Encrypt签发的证书很可信,但一开始 Let’s Encrypt 的安全证书配置起来比较麻烦,需要手动获取及部署。存在一定的门槛,所以后来有开发了Certbot这个工具,简单的执行几个命令就自动安装好了。


1.png


一、先保证你的网站能够访问,我们这里以CENTOS7下的nginx + php环境为例;

二、进入certbot官网,选择软件和系统,我这里是NGINX、CENTOS7;

三、登录到服务器执行如下命令:

sudo yum install certbot-nginx
sudo certbot --nginx

执行这步报错了

# Error while running nginx -c /etc/nginx/nginx.conf -t.

说明NGINX配置文件路径不是默认路径,我们加上文件链接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
ln -s /usr/local/nginx/conf/ /etc/nginx

重新执行上一步,安装成功了,用https访问你的站点一切OK,nginx配置文件已经自动加上了证书的配置。

四、http自动转到https,其实很简单:

注释掉#Lisen 80

 #listen 80 default_server;

重新写一个80端口的配置,让http重定向到https

server 
{
  listen 80;
  server_name xxx.com;
  return 301 https://xxx.com$request_uri;
}

保存退出,验证一下nginx配置文件是否正确

nginx -t

如果没有问题,重新启动nginx

service nginx restart


由于这个证书是免费使用等原因,这个证书有过期时间,目前是90天,官方有说明,所以我们要在过期前重新更新一下证书

certbot renew

为了不手动去执行,我们可以加到crontab中,定时执行,例如每天凌晨和中午12点分别执行一次

crontab -e
0 0,12 * * * /usr/bin/certbot renew >>/var/log/certbot.log
:wq