A.1.4 分发密钥
现在已经有了全部的密钥和证书,是时候将他们分发到客户端和daemon节点上了。复制如下文件。
- 从CA复制
ca.pem
、daemon-cert.pem
,以及daemon-key.pem
到node3
(daemon节点) - 从CA复制
ca.pem
、client-cert.pem
,以及client-key.pem
到deno1
(客户端节点)
下面会介绍如何使用 scp
完成复制操作,读者也可随意选择其他工具使用。
在 node2
(CA节点)密钥所在目录下运行下面的命令。
// Daemon files
$ scp ./ca.pem ubuntu@daemon:/home/ubuntu/.docker/ca.pem
$ scp ./daemon-cert.pem ubuntu@daemon:/home/ubuntu/.docker/cert.pem
$ scp ./daemon-key.pem ubuntu@daemon:/home/ubuntu/.docker/key.pem
//Client files
$ scp ./ca.pem ubuntu@client:/home/ubuntu/.docker/ca.pem
$ scp ./client-cert.pem ubuntu@client:/home/ubuntu/.docker/cert.pem
$ scp ./client-key.pem ubuntu@client:/home/ubuntu/.docker/key.pem
关于命令需要注意以下几点。
(1)第2、3、5以及第6条命令在复制过程中对文件进行了重命名。重命名非常重要,因为Docker对文件的命名规范有规定。
(2)命令假设使用的环境是Ubuntu Linux,并且使用 ubuntu
作为用户账户。
(3)在执行命令前,需要分别在daemon和客户端所在节点上提前创建 /home/ubuntu/.docker
这个隐藏目录。此外还需要修改 .docker
目录的权限,允许复制操作执行。可以使用 chmod 777.docker
,但这种方式并不安全。切记,当前只是为了快速创建一个CA和证书,才可以这么做。在安全的PKI构建中该操作决不允许。
(4)如果当前环境是AWS,需要在每条命令之后通过 -i <key>
来指定实例的私钥。
当前环境如图A.3所示。
node1
和 node3
节点只会信任由其CA公钥签名的CA以及证书。
配置了正确的证书后,就可以开始配置Docker的客户端和daemon使用TLS了。