ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用certbot制作免费Lets encrypt SSL证书

2022-05-31 13:33:03  阅读:211  来源: 互联网

标签:encrypt 证书 xxx SSL Lets nginx test com certbot


利用certbot软件包可以免费制作SSL证书 这对小网站和测试项目太有用了,下面记录一下制作证书的流程和方法。以备后用。以centos7系统为例 其他系统类似。

安装certbot


yum install -y epel-release
yum install -y certbot

准备环境

制作证书前需要先准备好域名的访问环境,因为制作证书的时候需要确认域名和服务器的所有权。

1、dns验证

 dns验证需要加参数 --preferred-challenges dns 来定义,主要就是配置域名的txt记录即可。 下面主要是用单机验证方式。

2、服务器文件验证

 需要服务器开放80端口、配置nginx的静态文件访问目录。但是需要制定 webroot参数来路径,会生成一个文件,然后访问这个文件是否能成功访问到。 成功则验证通过

3、单机生成

 不需要额外的支持 命令加--standalone来指定 需要关闭nginx或者apache才能执行。

创建证书


certbot certonly --standalone -d xxx.test.com -m taoxxx@foxmail.com --agree-tos

这一步可能有环境问题报错的情况 自行百度解决。
如果出现 Problem binding to port 80: Could not bind to IPv4 or IPv6. 这种错误 可以把nginx或者apache关了再重新执行上面生成证书的命令

生成成功后会输入下面提示,打印了证书的路径在/etc/letsencrypt/live/xxx.test.com/,过期时间为90天,以及续期的命令。

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/xxx.test.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/xxx.test.com/privkey.pem
   Your certificate will expire on 2022-07-06. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot 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


配置nginx


server {
        listen 443 ssl http2;
        server_name  xxx.test.com;
        client_max_body_size 1024M;
        proxy_connect_timeout       600;
        proxy_send_timeout          600;
        proxy_read_timeout          600;
        send_timeout                600;
        keepalive_timeout 4800;
        index             index.html;
       ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
       ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
       ssl_prefer_server_ciphers on;
       ssl_session_cache shared:SSL:10m;
       ssl_session_timeout 10m;
       ssl_certificate /etc/letsencrypt/live/xxx.test.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/xxx.test.com/privkey.pem;
       ....省略
}  


重启nginx 用https访问服务可以看见浏览器的一个小锁就表示https证书部署成功了。

续期

因为这个免费证书只有90天的有效期,到了就需要续期才能继续使用,目前只能手动续期 执行命令 certbot renew。但是可以用定时任务的方式每天续费一次 好像也可以一劳永逸。

crontab -e

 
0 */6 * * * certbot renew --quiet && nginx -s reload

其他证书操作

1、查看已经生成的证书

`certbot certificates`

2、吊销证书

certbot revoke --cert-path "/etc/letsencrypt/live/xxx.test.com/cert.pem"

由于环境的不同 会遇到各种坑 用docker的方式来创建和续期是可复制性最高的。

参考
https://github.com/wmnnd/nginx-certbot
https://github.com/JonasAlfredsson/docker-nginx-certbot

标签:encrypt,证书,xxx,SSL,Lets,nginx,test,com,certbot
来源: https://www.cnblogs.com/peachyy/p/16306219.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有