公司最近采用了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及以上...
tls-observatory, 用于TLS配置,X509证书和更多的天文台 TLS想要WebUI请查看mozilla的天文台。? !TLS正在开始运行。使用来自 Docker的tlsobs客户端开发创建数据库数据库。启动API和扫描程序。在本地运行扫描。配置...
- **为Docker守护进程配置TLS认证**:使用传输层安全性(TLS)可确保Docker守护进程通信的加密。 6. **非评分项**:文档中有些配置项并未纳入评分,这可能是由于这些配置项在不同环境下可能有不同需求,或者是由于...
在CentOS 7中,Docker 1.12版本,可以通过配置开启远程REST API访问来实现这一功能。下面将详细介绍如何配置CentOS Docker 1.12以允许远程REST API访问。 首先,Docker默认使用Unix套接字(socket)与守护进程通信...
Dockerized OpenLDAP ... 如果启用了TLS,则将需要生成证书,并且LDAP_TLS_ *环境变量将需要指向适当的配置文件或设置。 OpenLDAP已配置为侦听端口389,但将LDAP暴露在端口3389的容器外部。类似地,phpLdapA
在xhyve管理程序上运行的Boot2Docker特征boot2docker v19.03.5 禁用TLS 公开IANA注册的官方Docker端口2375 支持NFS同步文件夹:/ Users已在boot2docker VM上NFS挂载。要求Mac OS X Yosemite 10.10.3或更高版本2010或...
实现功能如下: 1、支持SSL模式单机部署(1 etcd),证书有效期为100年。 2、支持SSL模式单机伪...4、支持数据目录、端口灵活配置。 5、支持数据目录、日志目录持久化。 6、支持部署、启动、停止、卸载、检测等操作。
流浪的dockerhost 这是 Vagrant Docker Provider 配置的示例。 它基于来自 reddit 用户的的想法和样本。 它使用从分叉的 ,不再维护 yungsang/boot2docker 。先决条件Mac OS X示例用法使用 $HOME/projects/vagrant-...
- **TLS加密**:默认情况下,Swarm使用TLS对节点间的通信进行加密,确保数据的安全传输。 - **服务隔离**:每个服务都有自己的命名空间,包括网络、卷和命名空间,从而实现服务之间的隔离。 6. **伸缩性** ...
Docker 镜像文件来创建一个支持 SSL 的 Centos7 vsftpd 服务器。 它使用虚拟用户进行数据传输并禁用匿名登录。 上传也被禁用。 该图像主要用作共享现有文件的快速方式,以防通过其他方法(https、ssh 等)共享不容易...
默认情况下,配置是从DOCKER_HOST 、 DOCKER_CERT_PATH和DOCKER_VERIFY_TLS环境变量中DOCKER_VERIFY_TLS 。 如果DOCKER_VERIFY_TLS和DOCKER_CERT_PATH都已设置,则从磁盘读取凭据并使用 https。 可以通过将配置传递...
使用默认套接字或您环境中的配置连接到Docker: import docker client = docker . from_env () 您可以运行容器: >> > client . containers . run ( "ubuntu:latest" , "echo hello world" ) 'hello world \n ' ...
docker构建nginx双向认证https服务器。 openssl命令生成双向认证自签名证书。 nginx配置https(tls)服务。 浏览器访问服务器需要导入客户端证书到浏览器中。
Docker和Kubernetes TLS指南 本指南将引导您为Docker和Kubernetes设置TLS和TLS证书客户端身份验证。 安装CFSSL 保护Docker和Kubernetes的第一步是建立一个用于管理TLS证书的PKI基础架构。 审查和自定义CSR CFSSL...
本教程将详细介绍如何配置TLS,以便安全地通过网络远程连接到Docker。 首先,我们需要创建一个证书颁发机构(CA)证书目录。在Linux环境中,可以使用以下命令创建一个名为“tls”的目录: ```bash mkdir tls cd ...