这可能是因为证书格式不正确或与密钥不匹配导致的。可以使用以下代码片段来生成正确的证书格式:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem
openssl pkcs12 -inkey key.pem -in cert.pem -export -out cert.p12
在Gin的代码中将下面的代码替换为正确的证书路径和密码:
router := gin.Default()
router.Use(TlsHandler())
router.RunAutoTLS(":443")
// ...
func TlsHandler() gin.HandlerFunc {
certFile := "/path/to/cert.p12"
certPassword := "my_password"
return func(c *gin.Context) {
c.Request.TLS = &tls.ConnectionState{}
cert, err := tls.LoadX509KeyPair(certFile, certFile)
if err != nil {
log.Fatal(err)
}
certBytes, err := ioutil.ReadFile(certFile)
if err != nil {
log.Fatal(err)
}
pool := x509.NewCertPool()
if !pool.AppendCertsFromPEM(certBytes) {
log.Fatal("Failed to append certs")
}
c.Request.TLS.Certificates = []tls.Certificate{cert}
c.Request.TLS.RootCAs = pool
c.Request.TLS.ClientCAs = pool
c.Request.TLS.ServerName = ""
}
}
确保证书路径和密码正确,然后重新运行代码。
上一篇:AutotestsforTask.ContinueWith逻辑
下一篇:AutoTokenizer.from_pretrained()函数中出现“TypeError:notastring”错误。