--- /dev/null
+--- a/libyara/include/yara/pe_utils.h
++++ b/libyara/include/yara/pe_utils.h
+@@ -102,7 +102,7 @@ char *ord_lookup(
+
+ #if HAVE_LIBCRYPTO
+ #include <openssl/asn1.h>
+-time_t ASN1_get_time_t(ASN1_TIME* time);
++time_t ASN1_get_time_t(const ASN1_TIME* time);
+ #endif
+
+ #endif
+diff --git a/libyara/modules/pe/pe.c b/libyara/modules/pe/pe.c
+index 8eace26..ed43abe 100644
+--- a/libyara/modules/pe/pe.c
++++ b/libyara/modules/pe/pe.c
+@@ -44,8 +44,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #endif
+
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L
+-#define X509_getm_notBefore X509_get_notBefore
+-#define X509_getm_notAfter X509_get_notAfter
++#define X509_get0_notBefore X509_get_notBefore
++#define X509_get0_notAfter X509_get_notAfter
+ #endif
+ #endif
+
+@@ -1433,10 +1433,10 @@ void _parse_pkcs7(
+ }
+ }
+
+- date_time = ASN1_get_time_t(X509_get_notBefore(cert));
++ date_time = ASN1_get_time_t(X509_get0_notBefore(cert));
+ set_integer(date_time, pe->object, "signatures[%i].not_before", *counter);
+
+- date_time = ASN1_get_time_t(X509_get_notAfter(cert));
++ date_time = ASN1_get_time_t(X509_get0_notAfter(cert));
+ set_integer(date_time, pe->object, "signatures[%i].not_after", *counter);
+
+ (*counter)++;
+--- a/libyara/modules/pe/pe_utils.c
++++ b/libyara/modules/pe/pe_utils.c
+@@ -307,7 +307,7 @@ time_t timegm(
+ // and cleaned up. Also uses timegm(3) instead of mktime(3).
+
+ time_t ASN1_get_time_t(
+- ASN1_TIME* time)
++ const ASN1_TIME* time)
+ {
+ struct tm t;
+ const char* str = (const char*) time->data;