我通过下面的命令生成了自签名证书:
/bin/bash -c 'openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 5 -nodes
请检查证书,它在接下来的5天内有效。
我需要编写一个脚本,只检查此证书的过期日期,但不幸的是无法验证它。 能否请您提供正确的流程呢?
我的程序:
package main
import (
"crypto/x509"
"encoding/pem"
"fmt"
)
func main() {
const certPEM = `
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----`
block, _ := pem.Decode([]byte(certPEM))
if block == nil {
panic("failed to parse certificate PEM")
}
cert, err := x509.ParseCertificate(block.Bytes)
if err != nil {
panic("failed to parse certificate: " + err.Error())
}
opts := x509.VerifyOptions{
DNSName: "test.com",
}
if _, err := cert.Verify(opts); err != nil {
panic("failed to verify certificate: " + err.Error())
}
fmt.Println("correct")
}
我遇到的下一个错误是:
恐慌:验证证书失败:x509:证书由未知机构签名