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. hdu4044

    题意:给你一颗树有n个节点,树的根节点为1,表示为敌人的基地,其他叶子节点为你的基地,你一开始有m元,给你每个节点可以建造的塔的数量和塔的价格和可以照成的伤害,每个节点至多建立一座塔.敌人的基地每次会 ...

  2. P3957 跳房子

    题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n 个格子,这些格子都在同一条直线上.每个格子内 ...

  3. CSS之box-sizing

    盒子模型是CSS中很重要的概念,它涉及到的无非就是内容(content).填充(padding).边框(border).边界(margin).但是从上两张图可以看出,盒子模型其实有两种类型:标准盒模型 ...

  4. Beta冲刺 1

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10093150.html 作业博客:https://edu.cnblogs.com/campus ...

  5. OpenGL的一些名词

    搬运自:https://learnopengl-cn.github.io/01%20Getting%20started/10%20Review/ 词汇表 OpenGL: 一个定义了函数布局和输出的图形 ...

  6. tomcat文件下目录介绍

    主目录下有bin ,conf ,lib ,logs ,temp ,webapps ,work 7个文件夹,下面对它们分别进行介绍: 1.bin目录主要是用来存放tomcat的命令,主要有两大类,一类是 ...

  7. [转载] java多线程总结(一)

    转载自:http://www.cnblogs.com/lwbqqyumidi/p/3804883.html 作者:Windstep 多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. ...

  8. MVC部署阿里云躺过的坑

    1.端口问题 服务器上的80端口默认是打开的.但要能用必须在阿里云的安全组添加对应的配置. 2.安装IIS 在Windows Service 2012 安装IIS,安装时勾一个总复选框,但有些该分支下 ...

  9. C++实验:时间和日期类

    描述 用C++实现日期类CDate和时间类CTime,并在次基础上利用多继承实现日期时间类CDateTime,使其能输出样例信息. 主函数里的代码已经给出,请补充完整,提交时请勿包含已经给出的代码. ...

  10. java8-lambda常用语法示例

    常用语法示例: public static void main(String[] args) { List<OrderInfo> orderInfoList = Lists.newArra ...