背景

  • 操作系统
    d944454b-4ab1-4fdd-8236-9b816651f632.png

  • VPS位置
    阿里云香港

开始使用Cloudflare的免费https证书,但是由于Cloudflare的免费节点都在美西,而我的vps在香港,如果要用Cloudfalre的香港节点就需要成为付费用户。而国内的CDN都需要备案,因此,选择了直连。

为了继续支持https,选择了Let's Encrypt的免费证书,主要记录一下部署的过程以及遇到的一些问题

部署Let's Encrypt免费证书

  1. Certbot安装
    Certbot可以自动完成获取和更新Let的加密SSL证书和配置Web服务器的任务。

    # yum install certbot
  2. 证书获取

    # certbot certonly --agree-tos --email admin@example.com --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

    /var/lib/letsencrypt/:这里时你的网站根目录
    example.com:你的域名

  3. 自动更新证书
    由于Let's Encrypt的免费证书只有90天,因此需要在证书过期之前去获取更新,可以通过定时计划来实现:

    # crontab -e
    0 */12 * * * /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"

常见问题

  1. requests.packages.urllib3 错误的处理
    在通过certbot获取证书时出现的错误,解决方案:

    pip install requests urllib3 pyOpenSSL --force --upgrade
    pip install --upgrade --force-reinstall 'requests==2.6.0'
  2. ImportError: 'module' object has no attribute 'check_specifier
    在安装上述库时出现的问题,解决方案:

    pip install --upgrade setuptools==30.1.0
最后修改:2019 年 02 月 19 日 11 : 31 PM