公司最近采用了Spring Boot架构以Docker容器服务作为载体给客户提供服务,但是最近碰到一个严重的安全问题,这也是这几个月来一直忙碌更换新的架构而忽视的安全问题,但是最近随着产品上线客户的使用安全问题被赤裸裸的暴露出来,好在Docker提供了证书安全保护方案,下面就来讲一下配置与采过的坑(其中命令都是官网提供,具体意义请查询官网https://docs.docker.com/engine/security/https)
生成ssl证书命令步骤:注:这里$HOST定义一个域名或服务器名 用DNS指向本机 比方说修改/etc/hosts 加一下 127.0.0.1 master 这里$HOST就是master了
1. openssl genrsa -aes256 -out ca-key.pem 4096
2.openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
3.openssl genrsa -out server-key.pem 4096
4.openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
5. echo subjectAltName = DNS:$HOST,IP:127.0.0.1 > extfile.cnf
6.openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \
-CAcreateserial -out server-cert.pem -extfile extfile.cnf
7.openssl genrsa -out key.pem 4096
8.openssl req -subj '/CN=client' -new -key key.pem -out client.csr
9.echo extendedKeyUsage = clientAuth > extfile.cnf
10.openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \ -CAcreateserial -out cert.pem -extfile extfile.cnf
11.rm -v client.csr server.csr
12.chmod -v 0400 ca-key.pem key.pem server-key.pem
13.chmod -v 0444 ca.pem server-cert.pem cert.pem
测试证书是否正常
1.dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem \ -H=0.0.0.0:2376
2.docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem \ -H=$HOST:2376 version
Docker配置证书
1. cp -v {ca,cert,key}.pem /etc/docker/
2. vi /usr/lib/systemd/system/docker.service
3. ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix://var/run/docker.sock \
--tlsverify --tlscacert=/etc/docker/ca.pem \
--tlscert=/etc/docker/server-cert.pem \
--tlskey=/etc/docker/server-key.pem
4.将证书拷贝到client服务器 测试连接是否正常
curl https://master:2376/images/json \
--cert /etc/docker/cert.pem \
--key /etc/docker/key.pem \
--cacert /etc/docker/ca.pem
就这样Docker TLS连接就这样配置好了
相关推荐
同时,确保客户端Docker配置也开启TLS验证。 6. **测试连接** 确认Docker守护进程已成功启用TLS并可安全访问,可以尝试运行一个简单的Docker命令,如`docker info`。如果配置正确,命令应该能够正常执行,表明TLS...
Portainer是一个轻量级的docker环境管理UI,可以用来管理docker宿主机和docker swarm集群,这篇文章主要介绍了使用portainer连接远程docker的方法,需要的朋友可以参考下
- 对于Rancher 2.2及以上:`docker exec -ti <rancher_server_id> mv /var/lib/rancher/management-state/tls/localhost.crt /var/lib/rancher/management-state/tls/localhost.crt-bak` - 对于Rancher 2.3及以上...
2. 环境变量:设置各种环境变量以控制Docker行为,如API版本、TLS设置、代理配置等。 3. 配置文件:通过配置文件个性化Docker命令行为,了解敏感信息的安全处理。 4. Go运行时环境变量:利用Go语言的环境变量,如...
tls-observatory, 用于TLS配置,X509证书和更多的天文台 TLS想要WebUI请查看mozilla的天文台。? !TLS正在开始运行。使用来自 Docker的tlsobs客户端开发创建数据库数据库。启动API和扫描程序。在本地运行扫描。配置...
在某些情况下,用户可能需要自定义 Nginx 配置文件来适应特定的应用需求,例如调整监听端口、设置 SSL/TLS 加密、配置反向代理规则等。自定义配置文件可以通过挂载卷(volume)的方式来实现。在启动容器时,通过指定...
2、 支持TLS/SSL证书,证书有效期为100年 3、支持单实例部署 4、支持单机伪集群部署(1主+1从+1仲裁) 5、支持多机分布式集群部署(1主+1从+1仲裁) 6、支持数据目录、日志目录、端口、账号、密码、最大连接数、副本...
- **为Docker守护进程配置TLS认证**:使用传输层安全性(TLS)可确保Docker守护进程通信的加密。 6. **非评分项**:文档中有些配置项并未纳入评分,这可能是由于这些配置项在不同环境下可能有不同需求,或者是由于...
同时,出于安全考虑,安装完成后还需要对Docker进行安全加固,包括设置防火墙规则、配置TLS加密通信、用户认证等,以确保容器的安全运行。 在Docker的使用过程中,容器编排工具docker-compose也扮演着极其重要的...
在CentOS 7中,Docker 1.12版本,可以通过配置开启远程REST API访问来实现这一功能。下面将详细介绍如何配置CentOS Docker 1.12以允许远程REST API访问。 首先,Docker默认使用Unix套接字(socket)与守护进程通信...
搭建过程通常包括安装Docker Registry服务、配置访问权限和认证、设置TLS/SSL证书以保证传输安全等步骤。安装完成后,用户可以将自定义的Docker镜像推送到私有仓库中,也可以从私有仓库拉取镜像到本地进行部署。 ...
Dockerized OpenLDAP ... 如果启用了TLS,则将需要生成证书,并且LDAP_TLS_ *环境变量将需要指向适当的配置文件或设置。 OpenLDAP已配置为侦听端口389,但将LDAP暴露在端口3389的容器外部。类似地,phpLdapA
安全配置方面,如关闭直接在宿主机上运行容器的默认设置,配置TLS证书以确保通信的安全,都是需要细致处理的步骤。 在安装完成后,通常需要对Docker服务进行测试,以确认Docker守护进程正常运行并且能够响应CLI的...
2、支持TLS/SSL,证书有效期为100年 3、支持单实例部署 4、支持单机伪分片集群部署(1个config副本集+2个分片副本集+3路由节点) 5、支持多机分布式分片集群部署(1个config副本集+2个分片副本集+3路由节点) 6、...
在xhyve管理程序上运行的Boot2Docker特征boot2docker v19.03.5 禁用TLS 公开IANA注册的官方Docker端口2375 支持NFS同步文件夹:/ Users已在boot2docker VM上NFS挂载。要求Mac OS X Yosemite 10.10.3或更高版本2010或...
流浪的dockerhost 这是 Vagrant Docker Provider 配置的示例。 它基于来自 reddit 用户的的想法和样本。 它使用从分叉的 ,不再维护 yungsang/boot2docker 。先决条件Mac OS X示例用法使用 $HOME/projects/vagrant-...
- **TLS加密**:默认情况下,Swarm使用TLS对节点间的通信进行加密,确保数据的安全传输。 - **服务隔离**:每个服务都有自己的命名空间,包括网络、卷和命名空间,从而实现服务之间的隔离。 6. **伸缩性** ...