如何在NATS中使用TLS连接及证书配置相关技术咨询
关于NATS证书配置与创建的解答
一、你的理解是正确的
这段Go代码是NATS客户端通过证书建立安全连接的标准写法:
nats.ClientCert("client-cert.pem", "client-key.pem")指定客户端的证书和私钥,用于服务器验证客户端身份nats.RootCAs("rootCA.pem")指定根证书,用于客户端验证服务器证书的合法性
只要NATS服务器已配置对应TLS证书,这段代码就能建立加密且带身份验证的安全连接。
二、创建NATS所需证书的步骤
可以用openssl工具自行生成一套证书(适合测试或内部环境),步骤如下:
1. 生成根CA证书和私钥
# 生成带密码保护的根CA私钥(去掉-des3参数可生成无密码版本) openssl genrsa -des3 -out rootCA.key 2048 # 生成根CA证书,有效期设为10年 openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.pem
执行时需填写国家、组织等信息,根CA是整个证书链的信任起点,需妥善保管。
2. 生成服务器证书签名请求(CSR)和私钥
# 生成服务器私钥 openssl genrsa -out server.key 2048 # 生成服务器CSR openssl req -new -key server.key -out server.csr
注意填写Common Name时,要与NATS服务器的域名/IP一致(比如localhost或实际服务器地址),否则客户端验证会失败。
3. 用根CA签署服务器证书
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.pem -days 365 -sha256
4. 生成客户端证书签名请求(CSR)和私钥
# 生成客户端私钥 openssl genrsa -out client-key.pem 2048 # 生成客户端CSR openssl req -new -key client-key.pem -out client.csr
5. 用根CA签署客户端证书
openssl x509 -req -in client.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out client-cert.pem -days 365 -sha256
生成完成后,将rootCA.pem、client-cert.pem、client-key.pem提供给客户端,将rootCA.pem、server.pem、server.key配置到NATS服务器的配置文件中,即可启用TLS安全连接。
内容的提问来源于stack exchange,提问作者Эдуард Воронцов
相关产品推荐
相关产品推荐

