{siteMetadata.headerTitle}
Published on

使用certstrap快速生成自签名证书

Authors

简介

certstrap https://github.com/square/certstrap 是一个自签名证书生成工具,相比 openssl 来说更简易好用。

安装

安装要求:Go 1.18+

git clone https://github.com/square/certstrap
cd certstrap
go build
mv certstrap /usr/local/bin/
certstrap -V

用法

1. 生成 CA 根证书

# 会在当前目录下创建一个新的out目录,生成的证书都在该目录下
certstrap init --common-name "ExampleCA" --expires "20 years"

2. 生成 服务端证书

# 创建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. 生成 客户端证书

企业内部集群,通常为了保证服务之间的安全行,对客户端请求需要进行双向验证。这个时候就需要客户端也提供证书

# 创建CSR
certstrap request-cert -cn client

# 签名
certstrap sign client --CA ExampleCA

4. 生成 PKCS 格式证书

生成PKCS格式的证书可以直接点击安装到系统证书簇中,方便一些应用(浏览器等)的使用。

openssl pkcs12 -export -out client.p12 -inkey out/client.key -in out/client.crt -certfile out/ExampleCA.crt

使用 certigo 查询证书信息

# 安装
go install github.com/square/certigo@latest

# 查询证书的具体信息
certigo dump out/server.crt