English |
  • 美国VPS主机推荐
  • |
  • 代购服务
  • |
  • 10美元以下VPS
  • |
  • VPS新手指南/教程
  • |
  • 留言板
  • |
  • 关于
  • | 登录 |

    免费SSL证书Let's Encrypt(certbot)安装使用教程

    2016年07月4日 上午 | 作者:VPS侦探

    letsencrypt

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

    如果使用lnmp1.4,1.5的话都自带了生成SSL的工具,直接执行 lnmp ssl add 添加或者 lnmp vhost add 添加域名时"add ssl certificate"启用并选择letsencrypt。

    安装方法:

    如果是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 -n只是用来安装依赖包的,也可以跳过直接到下面的生成证书的步骤,国内VPS或服务器上使用的话建议先修改为国内的pip源

    单域名生成证书:

    ./certbot-auto certonly --email youemail@vpser.net --agree-tos --no-eff-email --webroot -w /home/wwwroot/www.vpser.net -d www.vpser.net

    多域名单目录生成单证书:(即一个网站多个域名使用同一个证书)

    ./certbot-auto certonly --email youemail@vpser.net --agree-tos --no-eff-email --webroot -w /home/wwwroot/www.vpser.net -d www.vpser.net -d bbs.vpser.net

    多域名多目录生成一个证书:(即一次生成多个域名的一个证书)

    ./certbot-auto certonly --email youemail@vpser.net --agree-tos --no-eff-email --webroot -w /home/wwwroot/www.vpser.net -d www.vpser.net -d bbs.vpser.net -w /home/wwwroot/lnmp.org -d www.lnmp.org -d lnmp.org

    提示

    IMPORTANT NOTES:
    - Congratulations! Your certificate and chain have been saved at
    /etc/letsencrypt/live/www.vpser.net/fullchain.pem. Your cert will
    expire on 2016-10-01. To obtain a new or tweaked version of this
    certificate in the future, simply run certbot-auto again. To
    non-interactively renew *all* of your certificates, run
    "certbot-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/www.vpser.net/ 目录下

    具体Nginx和Apache的配置可以参考:https://www.vpser.net/build/letsencrypt-free-ssl.html 里的配置文件。

    修改完配置文件切记重启或reload nginx。

    证书续期

    cerrbot的续期比原来的更加简单,因为证书只有90天,所以建议使用crontab进行自动续期:

    crontab 里加上如下规则:0 3 */5 * * /root/certbot-auto renew --disable-hook-validation --renew-hook "/etc/init.d/nginx reload" 这样每5天就会执行一次所有域名的续期操作。当然时间也可以自行进行调整,建议别太频繁,因为他们都有请求次数的限制,如果需要强制更新可以在前面命令上加上 --force-renew 参数。

    注意事项:

    1、因为默认LNMP的虚拟主机里是禁止 . 开头的隐藏文件及目录的,所以访问http://abc.com/.well-known/acme-challenge/**** 这个链接的话返回403错误,所以必须要将对应虚拟主机配置文件里的
    location ~ /\.
    {
    deny all;
    }
    这段配置删掉或注释掉或在这段配置前面加上
    location ~ /.well-known {
    allow all;
    }

    以上配置代码,然后重启nginx。

    2、如果要启用http2的话,建议编辑lnmp.conf,将里面的Nginx_Modules_Options的单引号里加上 --with-openssl=/root/openssl-1.0.2h

    并执行: cd /root && wget -c https://www.openssl.org/source/openssl-1.0.2h.tar.gz && tar zxf openssl-1.0.2h.tar.gz ,然后使用升级脚本 ./upgrade.sh nginx 升级nginx至1.9.5或更高版本。

    3、国内有些用户反映会卡在Installing Python packages...这个地方不动,因为pip的默认源是国外的,国内可能会有点慢,可以执行下面命令来修改pip源为国内的:
    mkdir ~/.pip
    cat > ~/.pip/pip.conf <<EOF
    [global] index-url = https://pypi.doubanio.com/simple/

    [install] trusted-host=pypi.doubanio.com
    EOF

    执行完,再重新运行certbot的命令应该正常安装python的包了。

    有问题可以在本帖或VPS侦探论坛提问。

    VPS侦探论坛邀请码:https://bbs.vpser.net/reg.php?invitecode=41f1ca437cCC9FXe 有效期至:2016-7-8 13:07

    >>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/build/letsencrypt-certbot.html
    VPS侦探推荐:
    遨游主机VultrLinode搬瓦工LOCVPSKVMLAHOSTKVMHostXen80VPS美国VPS主机,国内推荐腾讯云阿里云

    发表评论

    *必填

    *必填 (不会被公开)

    评论(33条评论)

    1. seven说道:

      按照python包的时候出现以下问题. 源我已经切换过了
      No matching distribution found for certbot==0.20.0 (from -r /tmp/tmp.nW2I99XHmh/letsencrypt-auto-requirements.txt (line 203))
      =====================================================

      Certbot has problem setting up the virtual environment.

      We were not be able to guess the right solution from your pip
      output.

      Consult https://certbot.eff.org/docs/install.html#problems-with-python-virtual-environment
      for possible solutions.
      You may also find some support resources at https://certbot.eff.org/support/ .

    2. VPS侦探说道:

      @哈哈哈, 填你自己的邮箱就行

    3. 哈哈哈说道:

      我使用的是Ubuntu,在输入sudo certbot --nginx 命令之后,他要求我输入一个邮箱,关于这个邮箱能给一个较好的介绍吗?

    4. klmahua说道:

      博主能把第三个命令解释一下吗,看不懂,多域名多目录生成一个证书:哪个是域名目录,哪个是域名,哪个是共用证书目录??

    5. VPS侦探说道:

      @klmahua, 第三个生成命令就是

    6. klmahua说道:

      360网站加速开启https需要上传crt文件及key文件,请问博主,,这两个文件在哪个位置,,,我找到的fullchain.pem文件怎么下载不下来?求博主帮忙!!!

    7. klmahua说道:

      博主,多个网站不同二级域名能使用同一个证书吗?比如主站门户域名是:www.xxx.com,论坛域名是:bbs.xxx.com,论坛和门户能同时使用门户的证书吗,如过可以,求怎么配置?

    8. VPS侦探说道:

      @佚名, 可能证书有问题,也可能网页中含有非https内容

    9. 佚名说道:

      已经上了https,但是浏览器会提示无法验证服务器身份,需要点击信任,怎么办啊?

    10. VPS侦探说道:

      @klmahua, yum install nss 后再试试,也可以直接wget后rpm -i 文件名进行安装

    11. klmahua说道:

      centos6 执行 yum install epel-release 安装失败
      错误提示:
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
      Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
      执行rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm 也安装失败
      错误提示:
      Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
      curl: (35) SSL connect error
      error: skipping https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm - transfer failed
      求博主解决!!!

    12. klmahua说道:

      执行./certbot-auto -n
      提示
      Bootstrapping dependencies for RedHat-based OSes...
      yum is /usr/bin/yum
      To use Certbot, packages from the EPEL repository need to be installed.
      Please enable this repository and try running Certbot again.

      怎么解决???

    13. VPS侦探说道:

      @qsau, 这个和配置没有关系,你自己手动pip install virtualenv 看一下是不是从修改后的源上下载安装

    14. qsau说道:

      我换了一个2核4G的做了相同操作,也是卡在install python package 上了,应该不是配置问题了。大神,有没有解决方案?

    15. qsau说道:

      安装certbot的服务器最低配置是什么?
      我的1核1G的阿里云服务器是否能安装?

      我系统是centos7.0安装certbot时在install python package时卡住了,我把进程kill掉,修改了pip源,但是依旧卡在这个地方,是不是我的服务器配置过低导致的还是其他什么原因?