简介
certstrap https://github.com/square/certstrap 是一个自签名证书生成工具,相比 openssl 来说更简易好用。
安装
安装要求:Go 1.18
代码语言:txt复制git clone https://github.com/square/certstrap
cd certstrap
go build
mv certstrap /usr/local/bin/
certstrap -V
用法
1. 生成 CA 根证书
代码语言:txt复制# 会在当前目录下创建一个新的out目录,生成的证书都在该目录下
certstrap init --common-name "ExampleCA" --expires "20 years"
2. 生成 服务端证书
代码语言:txt复制# 创建CSR, 即证书签名请求
certstrap request-cert -cn server -ip 127.0.0.1 -domain "*.example.com"
# 生成CSR之后,通过CA证书进行签名。签名后的证书位于:out/server.crt
certstrap sign server --CA ExampleCA
3. 生成 客户端证书
企业内部集群,通常为了保证服务之间的安全行,对客户端请求需要进行双向验证。这个时候就需要客户端也提供证书
代码语言:txt复制# 创建CSR
certstrap request-cert -cn client
# 签名
certstrap sign client --CA ExampleCA
4. 生成 PKCS 格式证书
生成PKCS格式的证书可以直接点击安装到系统证书簇中,方便一些应用(浏览器等)的使用。
代码语言:txt复制openssl pkcs12 -export -out client.p12 -inkey out/client.key -in out/client.crt -certfile out/ExampleCA.crt
使用 certigo 查询证书信息
代码语言:txt复制# 安装
go install github.com/square/certigo@latest
# 查询证书的具体信息
certigo dump out/server.crt