CentOS7安装Let’s Encrypt客户端Certbot获取Https证书

主题:
作者:anxin
日期:2017-09-02
分享:

Let’s Encrypt是一个免费的,自动化和开放的证书颁发机构(CA),为公众的利益服务。 它是由互联网安全研究组织(ISRG)提供的服务。

Let’s Encrypt为用户提供所需的数字证书,以便用户能免费为网站启用HTTPS(SSL / TLS)。Let’s Encrypt这样做是想要创建一个更安全,更具隐私性的Web空间。

Certbot是一个部署Let's Encrypt证书的客户端(Let's Encrypt是一个证书发布机构CA,Let's Encrypt支持域名加密,即为域名启用https)。Certbot能够自动的在Web服务器(Apache,Nginx等)上部署从Let's Encrypt获取的证书,非常简单易用。

在CentOS7上安装Certbot有三种方式:

  1. 使用Certbot官方提供的对应平台的RPM包安装
  2. 使用Certbot官方的提供的certbot-auto安装
  3. 使用pip安装Certbot,因为Certbot是Python程序

1、安装Certbot客户端

1.1、推荐:使用Certbot官方提供的对应平台的RPM包安装Certbot

使用Certbot官方提供的对应平台的RPM包安装Certbot非常简单方便,进入Certbot官网,在下拉框中选择服务器和操作系统,然后会出现安装代码,如下为CentOS7 Apache对应的代码:

1)安装EPEL软件源,Certbot软件包包含在EPEL软件源中

sudo yum install epel-release

2)安装Certbot,同时安装Certbot Apache插件

sudo yum install certbot-apache

或者安装Certbot Nginx插件

sudo yum install certbot-nginx

3)获取证书,并修改Apache服务器配置

sudo certbot --apache

获取证书,并修改Nginx服务器配置

sudo certbot --nginx

如果如上步骤没有出现任何错误,那么恭喜你!如果如出现错误查看对应问题python-urllib3安装失败,或者pyOpenSSL错误

1.2、使用certbot-auto脚本安装Certbot

certbot-auto脚本会安装Certbot,并且能够自己解决RPM包和Python包依赖问题,同样非常方便。同时certbot-auto是对certbot的封装,即certbot-auto提供certbot的所有功能。在使用此方法安装Certbot后,运行certbot-auto命令获取证书。

1)获取certbot-auto脚本

wget https://dl.eff.org/certbot-auto

2)使certbot-auto脚本可执行

sudo chmod a+x ./certbot-auto

3)运行certbot-auto,安装Certbot

./certbot-auto

4)获取Let's Encrypt证书,certbot-auto是对脚本certbot的封装,并且已经更新到了最新版本,所以使用此脚本获取证书

./certbot-auto

1.3、使用pip安装Certbot

此种方法比较简单,最好先创建一个Python虚拟环境,然后再安装Certbot

1)安装虚拟环境软件包(针对于Python2.7)

sudo yum install python-virtualenv

2)创建虚拟环境

sudo virtualenv /usr/local/python-certbot

3)激活虚拟环境

source /usr/local/python-certbot/bin/activate

4)首先更新pip

pip install --upgrade pip

5)安装Certbot

pip install certbot

6)安装Certbot Apache插件

pip install certbot-apache

或者安装Certbot Nginx插件:

pip install certbot-nginx

7)在安装Certbot Apache插件时,如提示如下错误:

OSError: ctypes.util.find_library() did not manage to locate a library called 'augeas'

那是因为缺少augeas库文件,安装augeas库文件:

sudo yum install augeas-libs

然后就能成功安装Certbot Apache插件。

8)获取Let's Encrypt证书,同时配置Apache服务器

sudo certbot --apache

或者,同时配置Nginx服务器

sudo certbot --nginx

2、自动更新Let's Encrypt证书

Let's Encrypt证书的有效期为三个月,所以Let's Encrypt证书到期时,要使用Certbot更新证书,Certbot推荐使用Cron或者Systemd Timer每天运行两次更新证书命令,当证书不到期时,不会更新证书,当证书到期后,会自动更新证书。

1)定义Systemd服务certbot.service:

sudo vi /usr/lib/systemd/system/certbot.service

内容如下:

[Unit]
Description=Let's Encrypt renewal

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --quiet --agree-tos

ExecStart:要指向你系统中certbot命令,因为你可能使用其他方式安装。

2)定义Systemd Timer:

sudo vi /usr/lib/systemd/system/certbot.timer

内容如下:

[Unit]
Description=Twice daily renewal of Let's Encrypt's certificates

[Timer]
OnCalendar=0/12:00:00
RandomizedDelaySec=1h
Persistent=true

[Install]
WantedBy=timers.target

3)使Timer开机自动运行

sudo systemctl enable certbot.timer

4)启动Timer

sudo systemctl start certbot.timer

这样系统当Timer定时运行对应的certbot.service服务。

本文链接:https://www.yuzhi100.com/article/centos-7-install-lets-encrypt-certbot

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!

作者:anxin