TLS получаю ошибку x509: certificate signed by unknown authority
Генерирую каждый раз новый сертификат с уникальным серийным номером при запуске сервера сроком на 12 часов, но при попытке подключиться со cтороны клиента получаю x509: certificate signed by unknown authority. Искал возможное решение проблемы на просторах интернета, но ничего внятного не нашел и не понимаю как решить эту проблему
Вот код сервера:
func main() {
key, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
panic(err)
}
serialNumber, err := rand.Int(rand.Reader, new(big.Int).Lsh(big.NewInt(1), 128))
if err != nil {
panic(err)
}
x509templ := x509.Certificate{
NotBefore: time.Now(),
NotAfter: time.Now().Add(time.Hour * 12),
IsCA: true,
SerialNumber: serialNumber,
Subject: pkix.Name{
Organization: []string{"Acme Co"},
},
BasicConstraintsValid: true,
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
}
cert, err := x509.CreateCertificate(rand.Reader, &x509templ, &x509templ, &key.PublicKey, key)
if err != nil {
panic(err)
}
keyPem := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key)})
certPem := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: cert})
tlsCert, err := tls.X509KeyPair(certPem, keyPem)
if err != nil {
panic(err)
}
l, err := tls.Listen("tcp", addr, &tls.Config{Certificates: []tls.Certificate{*tlsCert}})
if err != nil {
panic(err)
}
defer l.Close()
fmt.Println("Starting listening...")
for {
fd, err := l.Accept()
if err != nil {
panic(err)
}
conn := &Conn{fd: fd, closed: false}
go handleConn(conn)
}
}
Код клиента:
func main() {
conn, err := tls.Dial("tcp", "localhost:19000", &tls.Config{InsecureSkipVerify: false})
if err != nil {
panic(err)
}
}