--- /dev/null
+--- a/daemon/dtls.c
++++ b/daemon/dtls.c
+@@ -5,6 +5,8 @@
+ #include <glib.h>
+ #include <openssl/ssl.h>
+ #include <openssl/x509.h>
++#include <openssl/bn.h>
++#include <openssl/rsa.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <openssl/err.h>
+@@ -239,10 +241,10 @@ static int cert_init(void) {
+
+ /* cert lifetime */
+
+- if (!X509_gmtime_adj(X509_get_notBefore(x509), -60*60*24))
++ if (!X509_gmtime_adj(X509_getm_notBefore(x509), -60*60*24))
+ goto err;
+
+- if (!X509_gmtime_adj(X509_get_notAfter(x509), CERT_EXPIRY_TIME))
++ if (!X509_gmtime_adj(X509_getm_notAfter(x509), CERT_EXPIRY_TIME))
+ goto err;
+
+ /* sign it */
+--- a/lib/ssllib.c
++++ b/lib/ssllib.c
+@@ -35,10 +35,6 @@ static void make_OpenSSL_thread_safe(void) {
+ CRYPTO_THREADID_set_callback(cb_openssl_threadid);
+ CRYPTO_set_locking_callback(cb_openssl_lock);
+ }
+-#else
+-static void make_OpenSSL_thread_safe(void) {
+- ;
+-}
+ #endif
+
+
+@@ -46,7 +42,9 @@ void rtpe_ssl_init(void) {
+ struct timespec ts;
+ clock_gettime(CLOCK_REALTIME, &ts);
+ srandom(ts.tv_sec ^ ts.tv_nsec);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+ SSL_library_init();
+ SSL_load_error_strings();
+ make_OpenSSL_thread_safe();
++#endif
+ }