feat(certx): go-hua/ssl 迁入并更名 certx(证书/私钥工具)
- 原包名 ssl 与协议名混淆, 实为 x509 证书解析校验与自签生成, 更名 certx - 附测试、examples/certx 例程与包 README
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# certx
|
||||
|
||||
证书/私钥工具:PEM 解析校验(证书、公私钥匹配验证)与自签证书生成。
|
||||
|
||||
> 迁移自 go-hua/ssl 并更名:原包名 `ssl` 与协议名混淆,实际是 x509 证书操作,
|
||||
> 故更名 `certx`。
|
||||
|
||||
## 用法
|
||||
|
||||
```go
|
||||
import "git.zeroonesoft.cn/golib/zogo/certx"
|
||||
|
||||
// 自签证书(返回证书 PEM 与私钥 PEM)
|
||||
certPEM, keyPEM, err := certx.CreateCertificate(
|
||||
"localhost", // CommonName
|
||||
[]string{"localhost", "example.com"}, // SAN DNS 列表
|
||||
)
|
||||
|
||||
// 解析校验
|
||||
cert, err := certx.ParseCertificate(certPEM)
|
||||
key, err := certx.ParsePrivateKey(keyPEM)
|
||||
err = certx.VerifyPrivateKey(cert, keyPEM) // 证书与私钥是否配对
|
||||
```
|
||||
|
||||
完整可运行例程:[examples/certx/main.go](../examples/certx/main.go)
|
||||
|
||||
## 注意
|
||||
|
||||
- `CreateCertificate` 生成 RSA 2048 自签证书,仅适合内网/测试或做 CA 签发的种子;
|
||||
生产对外服务请用正规 CA 证书。
|
||||
- `ParsePrivateKey` 支持 PKCS#1/PKCS#8/EC 三种 PEM 形态,返回 `any`(断言后使用)。
|
||||
Reference in New Issue
Block a user