Docker registry自签名证书
权威Registry
获取安全证书有两个办法:互联网认证的CA处获取。自建CA自己给自己签名。
- 1、从认证CA处获取签名证书,大多数是需要付出一定费用的,近些年也有认证CA提供免费证书,例如Let’s Encrypt(被大多数浏览器信任)。下文使用Let’s Encrypt的例子您将清楚地看到这个步骤。
- 2、自建CA并签名证书的方式所带来的问题是CA本身的维护以及客户端方面的维护。要保证自建CA的安全需要有比较扎实的基础安全知识,维护它的 运转需要有对签名流程进行干预的控制能力,或自动、或手工。客户端方面,同样需要对所有客户端按照其CA安装机制来进行额外安装。若将自建CA维护到与认 证CA同等的安全性和便利性,所付出的代价将超过付费证书。因此这种方式主要用于试验性环境。
LetsEncrypt证书
1、准备一台服务器(有公网IP),已做好域名解析。这里以Ubuntu 14.04 TLS为例。
2、确保该服务器80,443端口可以从互联网访问到且不被占用(关掉占用端口的服务器)。
因为LetsEncrypt申请证书是需要联网签名的,并且要用到80端口。
在成功获取证书后,服务器IP和端口就可另作他用。因此,可以在某台有公网IP的主机服务器上获取证书,再将证书转移到其它服务器进行使用。若采用
这样的方式,Docker客户端需要将私网IP和dockie.mydomain.com对应写入hosts文件或将该解析写到私网DNS服务器里。但证
书到期renew的时候还需要同样的公网域名(公网IP可以不同)。
3、在服务器上获取签名证书
SH$ git clone https://github.com/letsencrypt/letsencrypt.git
$ cd letsencrypt
$ sudo ./certbot-auto certonly --standalone --email admin@example.com -d example.com -d www.example.com -d other.example.net
这里直接根据官方提供的方法从GITHUB获取安装包和目录安装,上面是一个标准的格式,根据我们的邮箱、以及需要添加的域名设置,如果多域名直接 在后面添加-d就可以,比如继续添加其他域名 -d www.laojiang.me -d laojiang.me以此类推。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/laojiang.me/fullchain.pem. Your cert will
expire on 2016-07-13. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.
- If you like Let's Encrypt, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
看到这样的文字和提示就代表获取Let’s Encrypt证书成功,时间是90天,我们需要在到期前手手动续约就可以继续90天。然后我们在”/etc/letsencrypt/live/域名 /“目录中看到4个文件(cert.pem chain.pem fullchain.pem privkey.pem)。
4、更新证书
使用下面这条命令,更新证书,它将更新到期时间不到30天的证书,而且它会根据你当初生成证书的设置更新你的证书。
$ ./certbot-auto renew --dry-run
5、通过钩子更新证书
$ ./certbot-auto renew --standalone --pre-hook "service nginx stop" --post-hook "service nginx start"
这里使用了一个钩子,--pre-hook>更新前执行命令命令,--post-hook更新之后执行命令。
自签名证书
执行以下命令,它会在文件夹下生成domain.key和domain.crt
SHmkdir -p certs && openssl req \
-newkey rsa:4096 \
-nodes -sha256 \
-keyout certs/domain.key \
-x509 -days 365 \
-out certs/domain.crt
相关参数说明:
SHCountry Name (2 letter code) [AU]:CN #国家代码,中国CN
State or Province Name (full name) [Some-State]:Sichuan #省份全拼
Locality Name (eg, city) []:Chengdu #城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Person #组织名,公司名
Organizational Unit Name (eg, section) []:Chen #部门名称
Common Name (e.g. server FQDN or YOUR name) []:registry.domain.com #这里必须填写Docker Registry使用的域名
Email Address []:ccc@domain.com #电子邮件
自签名证书,使用Docker Registry的Docker机需要将domain.crt拷贝到 /etc/docker/certs.d/[docker_registry_domain]/ca.crt,然后重启docker,将domain.crt内容放入系统的CA bundle文件当中,使操作系统信任我们的自签名证书。
CentOS 6 / 7中bundle文件的位置在/etc/pki/tls/certs/ca-bundle.crt:
cat domain.crt >> /etc/pki/tls/certs/ca-bundle.crt
Ubuntu/Debian Bundle文件地址/etc/ssl/certs/ca-certificates.crt
cat domain.crt >> /etc/ssl/certs/ca-certificates.crt
Mac
1、点击钥匙串访问
2、点击系统
3、点击证书
4、将domain.crt拖到目录下
5、输入密码,添加成功
6、双击该证书,点击信任,选择
7、退出
Docker registry自签名证书的更多相关文章
- Docker部署注册中心、Docker创建私有镜像库、自签名证书、Deploy a registry server
这是我在内部部署Docker Registry时记录下来的笔记,操作环境是Centos 7.Docker 18.06.1-ce 1.运行registry 我当前所使用的主机的IP是192.168.1. ...
- Harbor配置自签名证书,docker login+web https访问,helm chart推送应用
注:高版本(14以上)docker执行login命令,默认使用https,且harbor必须使用域名,只是用ip访问是不行的. 假设使用的网址是:www.harbor.mobi,本机ip是192.16 ...
- 【云计算】docker registry v2简介
ubuntu docker方式部署docker registry v2 2016-03-03 17:36 by JackieHan, 4 阅读, 0 评论, 收藏, 编辑 生成自己签名的证书 生成签 ...
- 在CentOS 6上搭建私有的Docker Registry
在CentOS 6上搭建私有的Docker Registry v2Registry概念 :Registry是一个无状态的, 高可扩展的服务器端应用程序, 用于存储和分发Docker Image. 依赖 ...
- 局域网内部署 Docker Registry
在局域网内部署 Docker Registry 可以极大的提升平时 pull.push 镜像的速度,从而缩短自动化操作的过程.同时也可以缓解带宽不足的问题,真是一举多得.本文将从创建单机的 Docke ...
- Docker系列08—搭建使用私有docker registry
本文收录在容器技术学习系列文章总目录 1.了解Docker Registry 1.1 介绍 registry 用于保存docker 镜像,包括镜像的层次结构和元数据. 启动容器时,docker dae ...
- ubuntu docker方式部署docker registry v2
生成自己签名的证书 生成签名的过程需要根据提示输入一些参数,需要注意的时Common Name的时候需要输入一个自己需要的域名,如果时内部域名记得访问的时候需要修改hosts. mkdir /data ...
- Docker Registry 简化版
目录 Docker Registry 为什么要使用Registry 依赖 启动 Configuring a registry 配置认证 Docker Registry https://docs.doc ...
- 为 Docker Registry 增加 Nginx 前端
其实Docker Registry 就是一个API backend,所以加一个Nginx前端有大大的好处,比如docker push 时增加用户名密码验证. 怎么加?请参考以下nginx配置 upst ...
随机推荐
- 基础总结篇之八:创建及调用自己的ContentProvider
转自:http://blog.csdn.net/wellsoho/article/details/49494141 若不能坚持到底,即使是朽木也不能折断:只要坚持不停地用刀刻,就算是金属玉石也可以雕出 ...
- 编译安装nginx错误解决!
编译安装执行 ./configure --prefix=/root/web/nginx --sbin-path=/root/web/nginx/sbin/nginx --conf-path=/root ...
- SpringBoot下配置Druid
什么是Druid:Druid是阿里发开的一套基于database的监控平台,相对于其他监控来说对于中文的支持更亲民.. 前言:最近这段时间发现项目整体运行响应速度较慢,打算对系统进行深层次的优化(尤其 ...
- Python之时间和日期模块
1.import time 先要导入时间模块 1)time.time()得到当前的时间,返回的是时间戳,表示自1970年1月1日起到程序运行时的秒数 import time print(time.ti ...
- Python 爬取 热词并进行分类数据分析-[JSP演示+页面跳转]
日期:2020.02.03 博客期:142 星期一 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...
- Apache Shiro安全(权限框架)学习笔记二
课程目标 通过学习本课程掌握权限管理的设计思想及方法,使用Shiro框架完成权限管理功能开发. 1. 理解基于资源的权限管理方法. 2. 掌握权限管理的数据模型. 3. 掌握不使用shiro开发 ...
- 吴裕雄--天生自然ORACLE数据库学习笔记:优化SQL语句
create or replace procedure trun_table(table_deleted in varchar2) as --创建一个存储过程,传入一个表示表名称的参数,实现清空指定的 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定文本居中对齐
<!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...
- [蓝桥杯2015初赛]生命之树(树状dp)
在X森林里,上帝创建了生命之树.他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值.上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 ...
- Jlink不报错的方法
https://blog.csdn.net/yekui6254/article/details/85272767 方法:安装最新的jlink驱动,按下面网址下载 OllyDBG软件,根据上面说的方法修 ...