https越来越流行了,但免费的证书一般是一年有效期。一般是够用了,但懒人都想一劳永逸,

有个免费证书颁发机构是letsencrypt。它是开源,并且完全免费的,它颁发的证书已经被几乎所有的浏览器所认可。证书90天有效期,支持自动续订。

自己的服务器使用docker进行部署的,基本上有新项目都强迫症般docker化。letsencrypt这肯定支持docker运行的。

官方有个certbot/certbot docker镜像

本地使用nginx反向代理的,比如我的一个域名https://git.dxgz.work/

修改nginx配置,添加

    location ~ /.well-known{       # https证书自动更新
proxy_pass http://127.0.0.1:88; # certon自动更新接口
}

88端口是cerbot的容器的端口,重载配置

sudo /usr/sbin/nginx -s reload    # 这个是装在主机的nginx重载命令
docker exec -it nginx.web /usr/sbin/nginx -s reload
# 我是使用docker的,要用这个命令

certbot第一次运行时需要配置域名和邮箱地址,之后使用renew就可以了

 docker run -it --rm -p : --name certbot \
-v "/data/ssl:/etc/letsencrypt" \
certbot/certbot \
certonly --standalone \
--email `你的邮箱地址` \
-d `你的域名地址` -d www.`你的域名地址`

上述命令将域名的ssl证书放在本地   /data/ssl

因为有效期限制,需要配置自动更新,比如这样,放到crontab定时任务中

renew_cert.sh
# 运行docker-更新证书
cd /data/letsencrypt && docker-compose up # reload nginx 配置,加载新证书
#docker exec -it nginx.web /usr/sbin/nginx -t
docker exec -it nginx.web /usr/sbin/nginx -s reload
上面的docker-compose.yml内容
version: ''

services:
web:
image: certbot/certbot
container_name: certbot.ssl.web
volumes:
- /data/ssl:/etc/letsencrypt
ports:
- "88:80"
command: renew
crontab -e 添加一个定时任务,当然了,docker是需要root权限启动的,或者配置了普通用户运行
  * * * /data/letsencrypt/renew_cert.sh > /dev/null >&
 每天凌晨0点运行

得到证书后,配置nginx,请参考我的另一博客
以上

docker nginx letsencrypt的更多相关文章

  1. docker nginx mysql

    docker run -p 9000:9000 --name myphp -v /docker/www/:/var/www/html/ -v /docker/php/php.ini:/usr/loca ...

  2. 搭建 docker + nginx + keepalived 实现Web应用的高可用(亲测)

    1. 环境准备     下载 VMware : https://www.vmware.com/go/getplayer-win        下载 Centos : https://mirrors.a ...

  3. 七、Docker+nginx

    原文:七.Docker+nginx docker run -p 80:80 --name nginx-v1.0.0 -v /usr/nginx/www:/www -v /home/docker/ngi ...

  4. docker nginx实现一个主机部署多个站点

    原文:docker nginx实现一个主机部署多个站点 在某站租赁的虚拟机快到期了,续费得花200多,想到在阿里云新买的服务器,不如把这个也转移过去.域名我就用真实的吧,大家别黑我网站就好了,谢谢各位 ...

  5. asp.netcore 3.0 Docker Nginx(震惊,原来docker是这样的!)

    引言 Docker发布于2013年,Docker是dotCloud公司创始人在法国期间发起的一个公司内部项目,他是dotCloud多年云技术的一个革新.Docker在容器基础上进行了一步的封装,从网络 ...

  6. Docker + Nginx + Tomcat 实现负载均衡简单演示

    Docker + Nginx + Tomcat 实现负载均衡 环境 [root@pinyoyougou-docker ~]# docker -v Docker version 1.12.6, buil ...

  7. Docker+Nginx使用流程(笔记)

    Docker+Nginx使用流程 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统 # uname -r 查看你当前的内核版本 # yum -y insta ...

  8. docker nginx 实现图片预览

    一.实现 nginx http图片预览 1.创建本地配置文件目录以及配置文件 两种方式: 1.1.docker nginx将配置文件抽离到了/etc/nginx/conf.d,只需要配置default ...

  9. Docker NGINX 例子

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

随机推荐

  1. nodejs-POST数据处理

    GET数据:容量小 32K 数据在URL中 POST数据:数据量大 1G 分段传输 数据另外发 处理方法: const http=require("http"); http.cre ...

  2. require的特点

    通过把要加载的文件看作一个“功能”而不是一个文件,require对于用Ruby编写的扩展和用C语言编写的扩展都用一样的方式.另外,.rb扩展名的文件与其它扩展名为.so..dll或.bundle的文件 ...

  3. 集成学习-Adaboost

    Adaboost 中文名叫自适应提升算法,是一种boosting算法. boosting算法的基本思想 对于一个复杂任务来说,单个专家的决策过于片面,需要集合多个专家的决策得到最终的决策,通俗讲就是三 ...

  4. cocos图片的选择以及压缩

    我们在使用cocos在windows平台下,运行速度很快很流畅,很强大,可是当我们打包成apk文件,在手机上运行的时候,流畅度很可能降低,甚至还有间歇性内存彪高. 游戏内存优化我们一般可以从这么3个方 ...

  5. 看到一个简单的背单词java程序的设计,收藏下

    https://blog.csdn.net/qq_40605167/article/details/81023836

  6. 学号 20175223 《Java程序设计》第 6 周学习总结

    目录 教材学习内容总结 代码调试中的问题和解决过程 1. 编译运行时,跳过 Scanner.nextLine() 语句. 2. 提示 NullPointerException 错误. [代码托管] 学 ...

  7. Python01(linux基础)

    聊一聊计算机 CPU,电源相关,时钟部分(主频),存储器,输入输出系统 计算机记忆装置:存储器分两大类:1.内存Ram(速度快,容量小(相对),断电后内容丢失) 非持久性记忆存储器2.如:硬盘,(速度 ...

  8. String与StringBuffer之间的转换

    来源:http://www.oschina.net/code/snippet_2261089_47352 package demo; /* String与StringBuffer之间的转换 * Str ...

  9. 显示react配置

    1. 由于react默认隐藏webpack配置需要手动显示. npm run eject //Are you sure you want to eject? This action is perman ...

  10. SQL注入之Sqli-labs系列第三十八关、第三十九关,第四十关(堆叠注入)

    0x1 堆叠注入讲解 (1)前言 国内有的称为堆查询注入,也有称之为堆叠注入.个人认为称之为堆叠注入更为准确.堆叠注入为攻击者提供了很多的攻击手段,通过添加一个新 的查询或者终止查询,可以达到修改数据 ...