Grpcs TLS 自签证书

由于微服务通讯需要进行数据加密以保证内网通讯安全。故此记录一下自签证书的生成过程。

以下是在 Linux 或 MacOS 系统上使用 OpenSSL 命令行工具生成自签名证书的步骤。这个过程将创建一个新的根证书(CA),然后使用这个根证书签名一个新的服务器证书。

生成根证书的私钥

openssl genrsa -out ca.key 2048

这个命令将生成一个新的 RSA 私钥,长度为 2048 位。这个私钥将被保存到名为 rootCA.key 的文件中。

生成根证书

openssl req -new -x509 -days 365 -key ca.key -out ca.crt

这个命令将生成一个新的 X.509 根证书,使用 SHA-256 算法进行签名,有效期为 365 天 (可自己调整日期)。这个证书将被保存到名为 rootCA.crt 的文件中。

在执行这个命令时,OpenSSL 会提示你输入一些信息,这些信息将被包含在证书中。在大多数情况下,你可以直接按 Enter 键接受默认值。

Subject Name 或 Common Name 需要填写微服务端的名称。

生成服务器证书的私钥

openssl genrsa -out [service-name].key 2048

这个命令与第一个命令类似,但是生成的私钥将被保存到名为 server.key 的文件中。

生成服务器证书的证书签名请求(CSR)

openssl req -new -key [service-name].key -out [service-name].csr

这个命令将生成一个新的证书签名请求(CSR),这个请求包含了服务器证书的公钥和一些附加信息。这个请求将被保存到名为 server.csr 的文件中。

同样,在执行这个命令时,OpenSSL 会提示你输入一些信息,这些信息将被包含在 CSR 中。

使用根证书签名服务器证书

openssl x509 -req -in [service-name].csr -CA ca.crt -CAkey ca.key -CAcreateserial -out [service-name].crt -days 365

这个命令将使用根证书对服务器证书进行签名,生成的证书将被保存到名为 server.crt 的文件中。

以上步骤生成的 rootCA.crtserver.crtserver.key 就可以用于 GRPC 加密通讯了,配置到对应的服务器端以及客户端。

文章目录

随心笔记

技术无止境 创新不停驻