diff -ur dillo-3.0.5.orig/configure.ac dillo-3.0.5/configure.ac --- dillo-3.0.5.orig/configure.ac 2015-06-30 16:07:06.000000000 +0200 +++ dillo-3.0.5/configure.ac 2017-09-11 15:51:57.910529543 +0200 @@ -286,7 +286,7 @@ if test "x$ssl_ok" = "xyes"; then old_libs="$LIBS" - AC_CHECK_LIB(ssl, SSL_library_init, ssl_ok=yes, ssl_ok=no, -lcrypto) + AC_CHECK_LIB(ssl, SSL_write, ssl_ok=yes, ssl_ok=no, -lcrypto) LIBS="$old_libs" fi diff -ur dillo-3.0.5.orig/dpi/https.c dillo-3.0.5/dpi/https.c --- dillo-3.0.5.orig/dpi/https.c 2015-06-30 16:06:08.000000000 +0200 +++ dillo-3.0.5/dpi/https.c 2017-09-11 16:03:39.862924064 +0200 @@ -443,6 +443,7 @@ char buf[4096], *d_cmd, *msg; X509 * remote_cert; + char * remote_cert_name; remote_cert = SSL_get_peer_certificate(ssl_connection); if (remote_cert == NULL){ @@ -476,7 +477,9 @@ case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: /*Either self signed and untrusted*/ /*Extract CN from certificate name information*/ - if ((cn = strstr(remote_cert->name, "/CN=")) == NULL) { + remote_cert_name = + X509_NAME_oneline(X509_get_subject_name(remote_cert), NULL, 0); + if ((cn = strstr(remote_cert_name, "/CN=")) == NULL) { strcpy(buf, "(no CN given)"); } else { char *cn_end; @@ -489,6 +492,7 @@ strncpy(buf, cn, (size_t) (cn_end - cn)); buf[cn_end - cn] = '\0'; } + OPENSSL_free(remote_cert_name); msg = dStrconcat("The remote certificate is self-signed and " "untrusted.\nFor address: ", buf, NULL); d_cmd = a_Dpip_build_cmd(