certbot生成免费nginx证书

certbot生成免费nginx证书

前言

certbot能够生成泛域名证书,阿里云的免费证书只能是单域名。但是并不是所有的服务都支持letsencrypt证书,列如k8s的默认容器引擎containerd就不支持,此时就可以使用阿里云免费域名,两者交叉使用。大部分浏览器均支持letsencrypt证书,出于安全问题,生产环境务必使用收费证书。

准备工作如下:

  • 准备一个阿里云域名
  • 一份阿里云AccessKey
  • 一台安装docker的centos7机器,docker能规避掉环境问题

启动容器(复制的时候删掉换行,处理成一行)

docker run -itd --name certbot    
-e ALY_KEY="accessKey"     
-e ALY_TOKEN="accessToken"    
-e EMAIL="abc@abc.xyz"     
-e CLOUD_TYPE="aly"
 -e DOMAIN_NAME_LIST="*.wsdchigh.top"     
loganjindev/certbot:v1.0.0

参数说明
-e CLOUD_TYPE="aly"		
表明阿里云
-e DOMAIN_NAME_LIST="*.wsdchigh.top"  
表明泛域名
-e ALY_KEY="accessKey" 具体的key,
为了安全使用过后就可以禁用

获取证书

容器启动一分钟左右,登录容器 docker exec -it certbot bash , 进入目录 cd /etc/letsencrypt/archive/,里面包含生成的证书。nginx需要使用到的证书privkey1.pem和fullchain1.pem,将它们复制到nginx对应的目录,然后通过 nginx -s reload 加载证书。

如何复制docker里面的内容 docker cp
certbot:etc/letsencrypt/archive ./
就可以把内容复制到当前目录

如何刷新证书

letsencrypt证书的有效期是90天,certbot本身是会自动刷新,内置crontab任务,通过crontab -e 就能查到任务。如果觉得证书没有刷新,就删除容器重复上述操作。

如果需要自动给nginx续期,就将/etc/letsencrypt/archive/ 映射出来,nginx直接使用这个目录, 还需要手动执行 nginx -s reload

© 版权声明

相关文章

5 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    系铃人 读者

    很多方法可以生成证书。关键是浏览器不认!

    无记录
  • 头像
    小廿廿 读者

    是的,ssl证书就是个垄断暴利行业

    无记录
  • 头像
    倾注半世烟眸 读者

    弱弱的问一句能用吗?

    无记录
  • 头像
    热爱生命 读者

    你这是个锤子教程

    无记录
  • 头像
    科技婉儿 投稿者

    收藏了,感谢分享

    无记录