Certify 可用于创建私有 CA(证书颁发机构)并颁发由预先创建的 CA 签署的证书。颁发的证书将有效1年。
此外,还可以为创建的证书设置使用者备选名称(IP SAN和DNS SAN)和通用名称。
$ certify -init⚡️ Initialize new CA Certificate and Key$ certify server.local 172.17.0.1⚡️ Generate certificate with alt name server.local and 172.17.0.1$ certify cn:web-server⚡️ Generate certificate with common name web-server
还可以当做Golang库使用:
$ go get github.com/nothinux/certify
例子:
package main
import (
"crypto/x509/pkix"
"log"
"os"
"time"
"github.com/nothinux/certify"
)
func main() {
p, err := certify.GetPrivateKey()
if err != nil {
log.Fatal(err)
}
if err := os.WriteFile("CA-key.pem", []byte(p.String()), 0640); err != nil {
log.Fatal(err)
}
// create ca
template := certify.Certificate{
Subject: pkix.Name{
Organization: []string{"certify"},
},
NotBefore: time.Now(),
NotAfter: time.Now().Add(8766 * time.Hour),
IsCA: true,
}
caCert, err := template.GetCertificate(p.PrivateKey)
if err != nil {
log.Fatal(err)
}
if err := os.WriteFile("CA-cert.pem", []byte(caCert.String()), 0640); err != nil {
log.Fatal(err)
}
}