A.1.3 为客户端创建密钥对

在本节中,会将前面对于 node3 的操作在Docker客户端节点 node1 上重复一遍。

在CA( node2 )上运行全部命令。

(1)为node1创建密钥。

这会在工作目录下创建名为client-key.pem的新文件。

$ openssl genrsa -out client-key.pem 4096

(2)创建CSR。确保所使用的节点DNS名称是正确的,该节点对应Docker安全客户端。示例中使用node1。

$ openssl req -subj '/CN=node1' -new -key client-key.pem -out client.csr

该命令会在当前目录下创建名为client.csr的新文件。

(3)创建名为 extfile.cnf 的文件,并用下面的值填充。这样会将证书设置为客户端认证可用。

extendedKeyUsage = clientAuth

(4)使用CSR、CA公钥、私钥和 extfile.cnfnode1 创建证书。该步骤会在当前目录下创建名为 client-cert.pem 的客户端公钥。

$ openssl x509 -req -days 730 -sha256 \
  -in client.csr -CA ca.pem -CAkey ca-key.pem \
  -CAcreateserial -out client-cert.pem -extfile extfile.cnf

删除 CSRextfile.cnf 文件,因为不会再用到它们了。

$ rm client.csr extfile.cnf

此时,在工作目录下应该有如下7个文件。

ca-key.pem         << CA private key
ca.pem             << CA public key (cert)
ca.srl             << Tracks serial numbers
client-cert.pem    << client public key (Cert)
client-key.pem     << client private key
daemon-cert.pem    << daemon public key (cert)
daemon-key.pem     << daemon private key

在继续之前,需要移除密钥文件的写权限,将密钥文件对自己以及其他属于当前组的用户变为只读。

$ chmod 0400 ca-key.pem client-key.pem daemon-key.pem

results matching ""

    No results matching ""