Certbot-auto 免费 SSL 证书实现 HTTPS

把这块做个整理,具体如下 简单写写。

1.准备

前提一台服务器,一可用域名

2.下载certbot

具体certbot的介绍查看网址 https://certbot.eff.org/

我在实际开发中用的certbot-auto

可以在服务器通过已下命令下载 certbot-auto

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

chmod a+x certbot-auto

3.配置nginx

修改你的服务器配置,在server模块添加:

location ^~ /.well-known/acme-challenge/ {

   default_type "text/plain";

   root     /usr/share/nginx/html;

}

注:

因为,CertBot在验证服务器域名的时候,会生成一个随机文件,然后CertBot的服务器会通过HTTP访问你的这个文件,因此要确保你的Nginx配置好,以便可以访问到这个文件。

location = /.well-known/acme-challenge/ {

   return 404;

}

接着重新加载Nginx配置:

sudo service nginx reload

4.执行certbot-auto生成证书

certbot-auto certonly --webroot -w  /usr/share/nginx/html/ -d www.test.com

注:在执行过程中会先去下载各种依赖的包构建环境。

已下是我在实际开发中总结的一些问题

1,这里需要python2.7以上版本,可以参考这篇文章 http://blog.csdn.net/jcjc918/article/details/11022345

2,如果是ReDHat的发行系统,在运行时可能会出现This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.  这是因为redhat 默认自带的 yum 源需要注册,才能更新。我们想不花钱也可以更新,需要替换掉redhat的yum源。可以参考这篇文章 

http://blog.51cto.com/qingwang/1551228

3,其次在执行过程中他会去执行 python的virtualenv,具体可百度 安装可参考文章

http://www.jianshu.com/p/08c657bd34f1  我在安装成功后运行扔提示无法找到 virtualenv ,同时却在其安装包下找到了找到了 virtualenv.py文件。解决办法建立软连接  ln -s python2.7/site-packages/virtualenv.py  /usr/local/bin/virtualenv 修改virtualenv.py的权限 chmod 740 virtualenv.py

5.执行成功提示签发成功

如果看到类似提示说明签发成功

相关文件会默认保存到/etc/letsencrypt/live/ 文件夹下

Certbot-auto 免费 SSL 证书实现 HTTPS_第1张图片

继续配置nginx


ssl_certificate /etc/letsencrypt/live/www.test.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.test.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/www.test.com/chain.pem;

6. 定期续签命令

certbot-auto renew --dry-run

可创建crontab 任务来定期续签。

你可能感兴趣的:(Certbot-auto 免费 SSL 证书实现 HTTPS)