docker 配置远程访问证书验证
centos7
生成证书
工具:openssl
#cd /etc/docker (docker的证书一般放这)
#openssl genrsa -aes256 -passout pass:密码 -out ca-key.pem 2048
会出现:
Generating RSA private key, 2048 bit long modulus
.............................................................+++
..................................................................................+++
e is 65537 (0x10001)
[root@webtest docker]# ls
ca-key.pem certs.d key.json
[root@webtest docker]# openssl req -new -x509 -days 365 -key ca-key.pem -passin pass:和上边相同的密码 -sha256 -out ca.pem -subj "/C=NL/ST=./L=./O=./CN=(server的ip)"
[root@webtest docker]# ls
ca-key.pem ca.pem certs.d key.json
[root@webtest docker]# openssl genrsa -out server-key.pem 2048
Generating RSA private key, 2048 bit long modulus
.........................................+++
...........................................................................+++
e is 65537 (0x10001)
[root@webtest docker]# ls
ca-key.pem ca.pem certs.d key.json server-key.pem
[root@webtest docker]# openssl req -subj "/CN=192.168.111.120" -new -key server-key.pem -out server.csr
[root@webtest docker]# ls
ca-key.pem ca.pem certs.d key.json server.csr server-key.pem
[root@webtest docker]# openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:qq77aa88" -CAcreateserial -out server-cert.pem
Signature ok
subject=/CN=192.168.111.120
Getting CA Private Key
[root@webtest docker]# ls
ca-key.pem ca.pem ca.srl certs.d key.json server-cert.pem server.csr server-key.pem
[root@webtest docker]# openssl genrsa -out key.pem 2048
Generating RSA private key, 2048 bit long modulus
.............................................+++
.............................................................................................................................................................................+++
e is 65537 (0x10001)
[root@webtest docker]# ls
ca-key.pem ca.pem ca.srl certs.d key.json key.pem server-cert.pem server.csr server-key.pem
[root@webtest docker]# openssl req -subj '/CN=client' -new -key key.pem -out client.csr
[root@webtest docker]# ls
ca-key.pem ca.pem ca.srl certs.d client.csr key.json key.pem server-cert.pem server.csr server-key.pem
[root@webtest docker]# sh -c 'echo "extendedKeyUsage=clientAuth" > extfile.cnf'
[root@webtest docker]# openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:qq77aa88" -CAcreateserial -out cert.pem -extfile extfile.cnf
Signature ok
subject=/CN=client
Getting CA Private Key
[root@webtest docker]# ls
ca-key.pem ca.pem ca.srl cert.pem certs.d client.csr extfile.cnf extfile.cnf’ key.json key.pem server-cert.pem server.csr server-key.pem
[root@webtest docker]# chmod 0400 ca-key.pem key.pem server-key.pem
[root@webtest docker]# chmod 0444 ca.pem server-cert.pem cert.pem
[root@webtest docker]# rm client.csr server.csr
rm:是否删除普通文件 "client.csr"?y
rm:是否删除普通文件 "server.csr"?y
设置docker daemon
# vim /lib/systemd/system/docker.service
启动参数后边追加
ExecStart=/usr/bin/dockerd-current \
--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
--default-runtime=docker-runc \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$ADD_REGISTRY \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY \
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock \
--tlsverify \
--tlscacert=/etc/docker/ca.pem \
--tlscert=/etc/docker/server-cert.pem \
--tlskey=/etc/docker/server-key.pem
# systemctl daemon-reload
# systemctl restart docker
测试:
[root@localmesos ~]# docker -H 192.168.111.120:2375 info
Get http://192.168.111.120:2375/v1.24/info: malformed HTTP response "\x15\x03\x01\x00\x02\x02".
* Are you trying to connect to a TLS-enabled daemon without TLS?
从server机器上 将ca.pem cert.pem key.pem 复制到client机器的/etc/docker目录下
# docker -H 192.168.111.120:2375 --tls --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/cert.pem --tlskey=/etc/docker/key.pem info
没问题
[root@localmesos docker]# docker -H 192.168.111.120:2375 --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/cert.pem --tlskey=/etc/docker/key.pem info
An error occurred trying to connect: Get https://192.168.111.120:2375/v1.24/info: x509: cannot validate certificate for 192.168.111.120 because it doesn't contain any IP SANs
docker 配置远程访问证书验证的更多相关文章
- Docker配置远程访问
近来学习Docker部署微服务,需要配置Docker的远程访问,由于实际环境和学习资料有出入,尝试着根据网上搜索的一些相关资料进行配置,未能成功.最终通过自己摸索,成功配置Docker远程访问.现和大 ...
- docker 配置远程访问
系统: centos 7 Docker version 1.12.6 yum 安装的 #yum install docker docker server在192.168.111.120上 # vim ...
- Centos7 Docker配置TLS认证的远程端口的证书生成教程(shell脚本一键生成)
通过 TLS来进行远程访问 百度百科 - TLS.我们需要在远程 docker 服务器(运行 docker 守护进程的服务器)生成 CA 证书,服务器证书,服务器密钥,然后自签名,再颁发给需要连接远程 ...
- Ubuntu18.04下安装Docker并配置SSL证书加密远程连接
Docker下载与安装 下载安装包 国内网络连接docker镜像还是比较慢的,这里推荐直接下载docker镜像,Ubuntu镜像下载路径为:https://download.docker.com/li ...
- nginx配置ssl双向验证 nginx https ssl证书配置
1.安装nginx 参考<nginx安装>:http://www.ttlsa.com/nginx/nginx-install-on-linux/ 如果你想在单IP/服务器上配置多个http ...
- nginx配置https双向验证(ca机构证书+自签证书)
nginx配置https双向验证 服务端验证(ca机构证书) 客户端验证(服务器自签证书) 本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件 这两个文件用于做服务器http ...
- 轻松把玩HttpClient之配置ssl,采用绕过证书验证实现https
上篇文章说道httpclient不能直接访问https的资源,这次就来模拟一下环境,然后配置https测试一下.在前面的文章中,分享了一篇自己生成并在tomcat中配置ssl的文章<Tomcat ...
- Docker配置整理
目录: 以非root用户身份管理Docker 配置Docker以在启动时启动 配置Docker守护程序监听连接的位置 以非root用户身份管理Docker 默认情况下,Docker运行权限由用户roo ...
- WCF 安全性 之 自定义证书验证
案例下载 http://download.csdn.net/detail/woxpp/4113172 客户端调用代码 通过代理类 代理生成 参见 http://www.cnblogs.com/woxp ...
随机推荐
- 【python】网络编程-UDP协议套接字
服务器端: #!/usr/bin/env python from socket import * from time import ctime HOST = '' PORT = 21567 BUFSI ...
- SVN同步
SVN同步:1.在备份服务器上安装SVN,之后创建同名的库名2.在备机的Repositories的库文件夹下的hooks目录下,备份并修改pre-revprop-change.tmpl文件为pre-r ...
- Mybatis -代码自动生成(generatorConfig.xml)
参考:http://blog.csdn.net/jinshiyill/article/details/51546676 官方网址: http://www.mybatis.org/generator/c ...
- linux下一个监测进程CPU和MEM使用率的shell脚本
#!/bin/bashPID=$1 cpu=`ps --no-heading --pid=$PID -o pcpu`mem=`ps --no-heading --pid=$PID -o pmem`ec ...
- javascript callee和caller
arguments的主要用途是保存参数,但是他还有callee属性. 一:callee指向arguments对象的函数. 示例一: function calture(num) {//阶乘计算 if ( ...
- web前端开发企业级CSS常用命名,书写规范总结
1.常用命名 标题: title 摘要: summary 箭头: arrow 商标: label 网站标志: logo 转角/圆角: corner 横幅广告: banner 子菜单: subMenu ...
- Flex工程师面试
这几天有一家公司需要招聘Flex开发的工程师,要求开发电力行业的WebGIS的电力方面的程序,当时也是被推荐过去的,随后的几天,自己也准备的一下,因为之前接触Flex的主要是开发一些医疗的项目,利用F ...
- Spark交互式工具spark-shell
REPL Spark REPL Spark shell 下面我们启动一下(我这里搭建的是3节点集群) sc.后面按TAB键可以把提示调出来 查看hdfs上文件内容 这个数据从这里下载的 https:/ ...
- 文件查找find命令
find命令总结: 常用选项: -name 查找/etc目录下以conf结尾的文件 find /etc -name '*conf' -iname 查找当前目录下文件名为aa的文件,不区分大小写 fin ...
- 20. orcle中统计一个字符串中某个字符的长度
例子1:统计一个字符串中“,”的个数: select lengthb(regexp_replace('[a,b,c,d,e,f]','[^,]',null)) as res from dual; 例 ...