博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
certbot的docker实践
阅读量:7081 次
发布时间:2019-06-28

本文共 2757 字,大约阅读时间需要 9 分钟。

hot3.png

网站的https访问,需要域名证书。可以在letsencrypt上申请免费的域名证书。首先,需要向letsencrypt证明对域名的控制权。证明的方式很多,这里采用的是,让certbot在网站上添加一个类似 的节点,letsencrypt会去访问这个节点,以此证明对域名的控制权。先配置一个简单的nginx,用于申请证书, 验证域名的控制权。得到证书后,就可以配置用于https访问的nginx了。证书3个月过期,更新证书的时候,关掉https访问的nginx,开启证书申请的nginx。更新完成之后,再关掉证书申请的nginx,重新开启https访问的nginx。

  1. 需要docker镜像
docker pull nginxdocker pull certbot/certbot
  1. 申请证书的nginx配置letsencrypt-nginx.conf
server {    listen       80;    server_name  ooxxooxx.com;    location ~ /.well-known/acme-challenge {        allow all;        root   /usr/share/nginx/html;    }    root /usr/share/nginx/html;    index index.html;}
  1. 文件index.html
    
Let's Encrypt First Time Cert Issue Site

Oh, hai there!

This is the temporary site that will only be used for the very first time SSL certificates are issued by Let's Encrypt's certbot.

  1. 启动申请证书的nginx
docker run --network host --rm --name nginx-letsencrypt \-v /root/docker/nginx/volumes/letsencrypt-nginx.conf:/etc/nginx/conf.d/default.conf \-v /root/docker/nginx/volumes/letsencrypt/html:/usr/share/nginx/html \-d nginx
  1. 申请证书。因为有次数限制,先测试一下命令,成功后在运行正式命令。有--staging参数是测试命令。没有--staging参数就是正式命令。
docker run -it --rm \-v /root/docker/nginx/volumes/letsencrypt/etc/letsencrypt:/etc/letsencrypt \-v /root/docker/nginx/volumes/letsencrypt/var/lib/letsencrypt:/var/lib/letsencrypt \-v /root/docker/nginx/volumes/letsencrypt/var/log/letsencrypt:/var/log/letsencrypt \-v /root/docker/nginx/volumes/letsencrypt/html:/data/letsencrypt \certbot/certbot \certonly --webroot \--register-unsafely-without-email --agree-tos \--webroot-path=/data/letsencrypt \--staging \-d ooxxooxx.com

看命令的结果,是否有证书生成。

  1. https的nginx配置https-nginx.conf
server {    listen       443;    server_name  ooxxooxx.com;    ssl on;    ssl_certificate /etc/letsencrypt/live/ooxxooxx.com/fullchain.pem;    ssl_certificate_key /etc/letsencrypt/live/ooxxooxx.com/privkey.pem;     location / {        root   /usr/share/nginx/html;        index  index.html index.htm;    }    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }}
  1. 启动https的nginx
docker run --network host --rm --name nginx-https \-v /root/docker/nginx/volumes/https-nginx.conf:/etc/nginx/conf.d/default.conf \-v /root/docker/nginx/volumes/letsencrypt/etc/letsencrypt:/etc/letsencrypt \-d nginx
  1. 更新证书
docker run --rm -it --name certbot \-v /root/docker/nginx/volumes/letsencrypt/etc/letsencrypt:/etc/letsencrypt \-v /root/docker/nginx/volumes/letsencrypt/var/lib/letsencrypt:/var/lib/letsencrypt \-v /root/docker/nginx/volumes/letsencrypt/var/log/letsencrypt:/var/log/letsencrypt \-v /root/docker/nginx/volumes/letsencrypt/html:/data/letsencrypt \certbot/certbot renew --webroot -w /data/letsencrypt
  1. 参考

转载于:https://my.oschina.net/kyle960/blog/3036706

你可能感兴趣的文章
字节和字符,对信息进行编码
查看>>
怎样使用ListView?
查看>>
c++基础类型之signed、unsigned的一个细节
查看>>
反转链表
查看>>
move.js
查看>>
hdu 6044 : Limited Permutation (2017 多校第一场 1012) 【输入挂 组合数学】
查看>>
如何选择硅谷的IT公司
查看>>
CSS Table Gallery
查看>>
OpenJudge Bailian 1088 滑雪 DFS
查看>>
大数相乘
查看>>
简单计算器 (栈)
查看>>
正则表达式学习网站
查看>>
RabbitMQ消费者消息权重,
查看>>
docker内存和cpu调试
查看>>
避开sql注入过滤的几个方法
查看>>
JQuery
查看>>
html和java的交互,利用jsBridge开源框架
查看>>
【hdu6072】Logical Chain
查看>>
Gartner:2013年SIEM市场分析(MQ)
查看>>
特殊命令eval的用法两例
查看>>