Skip to content

openssl

Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS) https://www.openssl.org/

常用命令

生成 RSA 私钥 openssl genrsa -out server.key 2048

从 RSA 私钥生成公钥 openssl rsa -in server.key -pubout > server.pub

查看指定网站证书 openssl s_client -showcerts -connect <host>:<port>

为 gRPC 生成自签署证书

生成根证书(root CA, CA short for certificate authority),ca.key 是私钥切勿泄露

sh
openssl genrsa -out ca.key 2048
openssl req -days 3560 -new -x509 -key ca.key -subj "/C=CN/ST=GD/L=SZ/O=MyCompany/CN=Root CA" -out ca.crt

其中 CSTLOCN 值可自行指定。

生成某个微服务服务端证书并使用 CA 证书签发,server.key 是私钥切勿泄露。 注意这里指定了 CN=subdomain.MyCompany.com ,后续代码中需要用到。

sh
openssl req -newkey rsa:2048 -nodes -keyout server.key -subj "/C=CN/ST=GD/L=SZ/O=MyCompany/CN=subdomain.MyCompany.com" -out server.csr
openssl x509 -days 3560 -req -extfile <(printf "subjectAltName=DNS:subdomain.MyCompany.com") -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

openssl rsa -in server.key -pubout > server.pub

查看证书内容 openssl x509 -in server.crt -noout -text

服务端 credentials.NewServerTLSFromFile 函数分别指定服务端证书和私钥 server.crt server.key 客户端 credentials.NewClientTLSFromFile 函数分别指定服务端证书和域名 server.crt,CA 证书签发服务端证书时指定的域名值

gRRC 和 gRPC-gateway 测试均可行。

参考

转换 PKCS8 为 PEM

sh
openssl pkcs8 -nocrypt -in AuthKey.p8 -out privateKey.pem
openssl ec -in privateKey.pem -pubout -out publicKey.pem

参考

Released under the CC-BY-NC-4.0