如果 “通用名称 ”字段太长(超过 64 字节),可能会面临 “通用名称 ”大小限制。
要绕过这一限制,必须在生成 CSR 时使用 SubjectAltName。
openssl req -nodes -newkey rsa:4096 -sha256 -keyout mongodb_client.key -out mongodb_client.csr -
config <(
cat <<-EOF
[req]
default_bits = 4096
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
CN = .
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = mongo1
DNS.2 = mongo2
DNS.3 = mongo3
EOF
然后使用 CA 证书和密钥签署 CSR。
openssl x509 -req -in mongodb_client.csr -CA ca.pem -CAkey ca.key -set_serial 00 -out
mongodb_client.crt
最后,将密钥和签名证书连接起来。
cat mongodb_client.key mongodb_client.crt > mongodb_client.pem
要连接到 ReplicaSet,现在可以提供新生成的客户证书。
mongo --ssl --sslCAFile ca.pem --host rs0/mongo1:27017,mongo2:27018,mongo3:27019 --sslPEMKeyFile
mongodb_client.pem
现在您已连接到 ReplicaSet,Mongo Shell 和 ReplicaSet 之间的所有事务都已加密。