Docker Data Center系列(五)- 使用自定义的TLS安全认证
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境。
基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力。
1 名词说明
- CSR: Certificate Signing Request,即证书签名请求, 这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥;
- CRT:证书文件,certificate的缩写,可以通过修改扩展名的方式与PEM文件互相转换;
- PEM:X.509证书的一种编码格式,内容以"-----BEGIN"开头,以"-----END"结尾,内容是BASE64编码;
- 服务器: 这里是指安装UCP/DTR的主机,或者作为Docker Remote API场景中被访问的服务器端主机,本文中UCP服务器IP为192.168.1.101,DTR服务器IP为192.168.1.102;
- 客户端: 这里是指需要访问UCP/DTR的主机,或者作为Docker Remote API场景中发起访问请求的客户端主机,本文中客户端IP为192.168.1.103, 192.168.1.104。
2 生成自签名CA证书
2.1 编辑CA配置文件
$ vi /etc/pki/tls/openssl.cnf
[ policy_match ]
# 除了country name,其它都改成optional
[ req_distinguished_name ]
# CommonName设置为IROOTECH CA,这个会显示为证书的【颁发者】和【颁发给】的属性值
2.2 生成CA私钥
创建到CentOS系统默认的CA私钥文件位置:
$ cd /etc/pki/CA/
$ openssl genrsa -out private/cakey.pem 2048
2.3 生成CA证书
创建到CentOS系统默认的CA证书文件位置:
$ openssl req -new -x509 -key private/cakey.pem -out cacert.pem
如果步骤2.1设置好了默认值,一路回车即可完成。
3 生成服务器证书
3.1 生成服务器私钥
创建到自定义文件夹:
$ mkdir /home/tls/
$ openssl genrsa -out server.key 2048
3.2 生成服务器证书签名请求
创建到自定义文件夹:
$ mkdir /home/tls/
$ openssl req -new -key server.key -out server.csr
commonName(CN)设置为UCP(DTR)所在主机名或FQDN。也可以设置为一个泛域名(*.yourcompany.com),其它都使用默认值。
3.3 生成服务器证书
一般情况下,服务器证书和CA证书不在同一个服务器上,所以需要将3.2节生成的服务器证书签名请求发送到CA证书所在服务器上。
创建到自定义文件夹:
$ mkdir /home/tls/
$ openssl ca -in server.csr -out server.pem
注意:生成服务器证书过程默认使用了-cert cacert.pem -keyfile cakey.pem,这两个文件就是2.2和2.3两步生成的,位于/etc/pki/CA下的CA密钥和CA证书。
4 如何使用
现在我们已经生成了必须的几个文件:
- /etc/pki/CA/cacert.pem
- /home/tls/server.pem
- /home/tls/server.key
4.1 UCP设置证书
在UCP Web UI中, 导航到管理员设置页面,在左侧菜单中,单击证书
依次上传:
- CA证书:
cacert.pem; - 服务器证书:
server.pem; - 私钥:
server.key。
点击保存
4.2 DTR设置证书
在DTR Web UI中,导航到系统页面, 在右侧页面中,点击常规,定位到域和代理,点击显示TLS设置
依次上传:
- CA证书:
cacert.pem; - 服务器证书:
server.pem; - 私钥:
server.key。
点击保存
4.3 浏览器导入CA证书
如果希望自己本地浏览器访问UCP Web UI时不显示安全证书警告,需要如下操作:
- a. 将cacert.pem文件复制到本地,然后修改扩展名为.crt;
- b. 右键点击,在弹出窗口中选择【安装证书】;
- c. 导出【证书导入向导】,点击【下一步】;
- d. 单选框选择【将所有的证书放入下列存储】,点击【浏览】按钮,弹出窗口中选择【受信任的根证书颁发机构】,点击【确认】,点击【下一步】;
- e. 点击【完成】。
系列文章
Docker Data Center系列(一)- 快速搭建云原生架构的实践环境
Docker Data Center系列(二)- UCP安装指南
Docker Data Center系列(三)- DTR安装指南
Docker Data Center系列(四)- 离线安装UCP和DTR
Docker Data Center系列(五)- 使用自定义的TLS安全认证
Docker Data Center系列(五)- 使用自定义的TLS安全认证的更多相关文章
- Docker Data Center系列(一)- 快速搭建云原生架构的实践环境
本系列文章演示如何快速搭建一个简单的云原生架构的实践环境. 基于这个基础架构,可以持续部署微服务架构的应用栈,演练敏捷开发过程,提升DevOps实践能力. 1 整体规划 1.1 拓扑架构 1.2 基础 ...
- Docker Data Center系列(二)- UCP安装指南
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 系统要求 1.1 硬件和软件要求 Linux内核版 ...
- Docker Data Center系列(四)- 离线安装UCP和DTR
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 离线安装UCP 1.1 可用版本 Version ...
- Docker Data Center系列(三)- DTR安装指南
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 系统要求 1.1 硬件和软件要求 成为UCP管理的 ...
- Android开发教程 - 使用Data Binding(五)数据绑定
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...
- React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发
React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发 2016/09/23 | React Native技术文章 | Sky丶清| 4 条评论 | 1 ...
- Spring Data JPA系列2:SpringBoot集成JPA详细教程,快速在项目中熟练使用JPA
大家好,又见面了. 这是Spring Data JPA系列的第2篇,在上一篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring Data JPA,傻傻分不清楚?给你个 ...
- CSS 魔法系列:纯 CSS 绘制各种图形《系列五》
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- Docker入门教程(五)Docker安全
Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...
随机推荐
- .NET Core部署中你不了解的框架依赖与独立部署
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9703460.html NET Core项目发布的时候你有没有注意到这两个选项呢?有没有纠结过框架依赖与独 ...
- No principal was found in the response from the CAS server
按网上的配置了 public String casServerUrlPrefix = "http://cas-server.com:8080/cas"; public String ...
- github代码clone加速
这阵子想看看开源项目 MyBatis 的源码,结果使用 git 的 clone 命令怎么也 clone 不下来,我以为是网速慢,上 Google 一搜,原来 Github 的域名被 DNS 污染了,我 ...
- Dubbo架构学习整理
一. Dubbo诞生背景 随着互联网的发展和网站规模的扩大,系统架构也从单点的垂直结构往分布式服务架构演进,如下图所示: 单一应用架构:一个应用部署所有功能,此时简化CRUD的ORM框架是关键 垂直应 ...
- 网络扫描工具nmap
nmap一般就用来扫描主机是否在线(特别是扫描局域网内存活的机器).开放了哪些端口.其他的功能用的比较少,做渗透的人可能要了解的多些. 1.1 选项说明 nmap需要自行安装. shell> y ...
- MySQL中间件之ProxySQL(9):ProxySQL的查询缓存功能
返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html ProxySQL支持查询缓存的功能,可以将后端返回的结果集缓存在自己的 ...
- “多个单核CPU”与“单个多核CPU”哪种方式性能较强?
多个单核CPU: 成本更高,因为每个CPU都需要一定的线路电路支持,这样对主板上布局布线极为不便.并且当运行多线程任务时,多线程间通信协同合作也是一个问题.依赖总线的传输,速度较慢,且每一个线程因为运 ...
- c#基础学习(0625)之vs常用快捷键、基础数据类型、命名规范
vs常用快捷键 Ctrl+K+D:快速对齐代码 Ctrl+z:撤销 Ctrl+S:保存 Ctrl+J:快速弹出只能提示 Shift+End:从行首快速选中整行 Shift+Home:从行未快速选中整行 ...
- MVC查找排序分页学习
2018-08-07 16:04:11 实现常用功能(Index.cshtml中) 1.查找 2.用户名排序(点击用户名) 3.分页功能(数据库MVCDemo可以添加用户) 源代码参考如下: 链接: ...
- 收官之作:利用Microsoft Teams构建中大型社区的技术架构与运营经验
这是我在 精彩又一年:Microsoft Teams技术社区2018年度回顾和展望 活动上面的主题分享,我用Microsoft Teams技术社区的实践经验,给大家整理和分享了技术架构和一些运营经验. ...