`

Docker TLS配置

阅读更多

公司最近采用了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实现安全配置的步骤

    同时,确保客户端Docker配置也开启TLS验证。 6. **测试连接** 确认Docker守护进程已成功启用TLS并可安全访问,可以尝试运行一个简单的Docker命令,如`docker info`。如果配置正确,命令应该能够正常执行,表明TLS...

    使用portainer连接远程docker的教程

    Portainer是一个轻量级的docker环境管理UI,可以用来管理docker宿主机和docker swarm集群,这篇文章主要介绍了使用portainer连接远程docker的方法,需要的朋友可以参考下

    docker部署rancher证书过期问题解决方案

    - 对于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证书和更多的天文台.zip

    tls-observatory, 用于TLS配置,X509证书和更多的天文台 TLS想要WebUI请查看mozilla的天文台。? !TLS正在开始运行。使用来自 Docker的tlsobs客户端开发创建数据库数据库。启动API和扫描程序。在本地运行扫描。配置...

    CIS_Docker_Benchmark_v1.2.0.pdf

    - **为Docker守护进程配置TLS认证**:使用传输层安全性(TLS)可确保Docker守护进程通信的加密。 6. **非评分项**:文档中有些配置项并未纳入评分,这可能是由于这些配置项在不同环境下可能有不同需求,或者是由于...

    Centos Docker1.12 远程Rest api访问的配置方法

    在CentOS 7中,Docker 1.12版本,可以通过配置开启远程REST API访问来实现这一功能。下面将详细介绍如何配置CentOS Docker 1.12以允许远程REST API访问。 首先,Docker默认使用Unix套接字(socket)与守护进程通信...

    docker-ldap:使用Osixia进行Dockerized OpenLDAP

    Dockerized OpenLDAP ... 如果启用了TLS,则将需要生成证书,并且LDAP_TLS_ *环境变量将需要指向适当的配置文件或设置。 OpenLDAP已配置为侦听端口389,但将LDAP暴露在端口3389的容器外部。类似地,phpLdapA

    boot2docker-xhyve:在xhyve系统管理程序上运行的Boot2Docker

    在xhyve管理程序上运行的Boot2Docker特征boot2docker v19.03.5 禁用TLS 公开IANA注册的官方Docker端口2375 支持NFS同步文件夹:/ Users已在boot2docker VM上NFS挂载。要求Mac OS X Yosemite 10.10.3或更高版本2010或...

    基于ARM64架构CPU使用docker-compose一键离线部署etcd v3.5.15容器版分布式TLS集群工具

    实现功能如下: 1、支持SSL模式单机部署(1 etcd),证书有效期为100年。 2、支持SSL模式单机伪...4、支持数据目录、端口灵活配置。 5、支持数据目录、日志目录持久化。 6、支持部署、启动、停止、卸载、检测等操作。

    vagrant-dockerhost:Vagrant Docker 提供程序配置示例

    流浪的dockerhost 这是 Vagrant Docker Provider 配置的示例。 它基于来自 reddit 用户的的想法和样本。 它使用从分叉的 ,不再维护 yungsang/boot2docker 。先决条件Mac OS X示例用法使用 $HOME/projects/vagrant-...

    Docker Swarm 管理资源.rar

    - **TLS加密**:默认情况下,Swarm使用TLS对节点间的通信进行加密,确保数据的安全传输。 - **服务隔离**:每个服务都有自己的命名空间,包括网络、卷和命名空间,从而实现服务之间的隔离。 6. **伸缩性** ...

    docker-vsftpd:一个支持 SSL 的 vsftpd 服务器 Docker 镜像

    Docker 镜像文件来创建一个支持 SSL 的 Centos7 vsftpd 服务器。 它使用虚拟用户进行数据传输并禁用匿名登录。 上传也被禁用。 该图像主要用作共享现有文件的快速方式,以防通过其他方法(https、ssh 等)共享不容易...

    docker-client-clj:用 Clojure 编写的 Docker 客户端。 支持 TLSHTTPS

    默认情况下,配置是从DOCKER_HOST 、 DOCKER_CERT_PATH和DOCKER_VERIFY_TLS环境变量中DOCKER_VERIFY_TLS 。 如果DOCKER_VERIFY_TLS和DOCKER_CERT_PATH都已设置,则从磁盘读取凭据并使用 https。 可以通过将配置传递...

    docker-py:Docker引擎API的Python库

    使用默认套接字或您环境中的配置连接到Docker: import docker client = docker . from_env () 您可以运行容器: >> > client . containers . run ( "ubuntu:latest" , "echo hello world" ) 'hello world \n ' ...

    docker构建nginx双向认证https服务器

    docker构建nginx双向认证https服务器。 openssl命令生成双向认证自签名证书。 nginx配置https(tls)服务。 浏览器访问服务器需要导入客户端证书到浏览器中。

    docker-kubernetes-tls-guide:关于如何使用TLS和CloudFlare的CFSSL来保护Docker和Kubernetes的循序渐进指南

    Docker和Kubernetes TLS指南 本指南将引导您为Docker和Kubernetes设置TLS和TLS证书客户端身份验证。 安装CFSSL 保护Docker和Kubernetes的第一步是建立一个用于管理TLS证书的PKI基础架构。 审查和自定义CSR CFSSL...

    使用TLS加密通讯远程连接Docker的示例详解

    本教程将详细介绍如何配置TLS,以便安全地通过网络远程连接到Docker。 首先,我们需要创建一个证书颁发机构(CA)证书目录。在Linux环境中,可以使用以下命令创建一个名为“tls”的目录: ```bash mkdir tls cd ...

Global site tag (gtag.js) - Google Analytics