diff --git a/lib/isc/tls.c b/lib/isc/tls.c index 237f1dd52d..a8be0ac3f2 100644 --- a/lib/isc/tls.c +++ b/lib/isc/tls.c @@ -462,7 +462,7 @@ isc_tlsctx_createserver(const char *keyfile, const char *certfile, X509_set_pubkey(cert, pkey); - X509_NAME *name = X509_get_subject_name(cert); + X509_NAME *name = X509_NAME_dup(X509_get_subject_name(cert)); X509_NAME_add_entry_by_txt(name, "C", MBSTRING_ASC, (const unsigned char *)"AQ", -1, -1, @@ -477,6 +477,9 @@ isc_tlsctx_createserver(const char *keyfile, const char *certfile, -1, -1, 0); X509_set_issuer_name(cert, name); + + X509_NAME_free(name); + X509_sign(cert, pkey, EVP_sha256()); rv = SSL_CTX_use_certificate(ctx, cert); if (rv != 1) {