805743
diff --git a/src/ssl/support.cc b/src/ssl/support.cc
805743
index 3ad135d..73912ce 100644
805743
--- a/src/ssl/support.cc
805743
+++ b/src/ssl/support.cc
805743
@@ -557,7 +557,11 @@ Ssl::VerifyCallbackParameters::At(Security::Connection &sconn)
805743
 }
805743
 
805743
 // "dup" function for SSL_get_ex_new_index("cert_err_check")
805743
-#if SQUID_USE_CONST_CRYPTO_EX_DATA_DUP
805743
+#if OPENSSL_VERSION_MAJOR >= 3
805743
+static int
805743
+ssl_dupAclChecklist(CRYPTO_EX_DATA *, const CRYPTO_EX_DATA *, void **,
805743
+                    int, long, void *)
805743
+#elif SQUID_USE_CONST_CRYPTO_EX_DATA_DUP
805743
 static int
805743
 ssl_dupAclChecklist(CRYPTO_EX_DATA *, const CRYPTO_EX_DATA *, void *,
805743
                     int, long, void *)
805743
diff --git a/src/security/PeerOptions.cc b/src/security/PeerOptions.cc
805743
index cf1d4ba..4346ba5 100644
805743
--- a/src/security/PeerOptions.cc
805743
+++ b/src/security/PeerOptions.cc
805743
@@ -297,130 +297,130 @@ static struct ssl_option {
805743
 
805743
 } ssl_options[] = {
805743
 
805743
-#if SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
805743
+#ifdef SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
805743
     {
805743
         "NETSCAPE_REUSE_CIPHER_CHANGE_BUG", SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
805743
     },
805743
 #endif
805743
-#if SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG
805743
+#ifdef SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG
805743
     {
805743
         "SSLREF2_REUSE_CERT_TYPE_BUG", SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG
805743
     },
805743
 #endif
805743
-#if SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER
805743
+#ifdef SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER
805743
     {
805743
         "MICROSOFT_BIG_SSLV3_BUFFER", SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER
805743
     },
805743
 #endif
805743
-#if SSL_OP_SSLEAY_080_CLIENT_DH_BUG
805743
+#ifdef SSL_OP_SSLEAY_080_CLIENT_DH_BUG
805743
     {
805743
         "SSLEAY_080_CLIENT_DH_BUG", SSL_OP_SSLEAY_080_CLIENT_DH_BUG
805743
     },
805743
 #endif
805743
-#if SSL_OP_TLS_D5_BUG
805743
+#ifdef SSL_OP_TLS_D5_BUG
805743
     {
805743
         "TLS_D5_BUG", SSL_OP_TLS_D5_BUG
805743
     },
805743
 #endif
805743
-#if SSL_OP_TLS_BLOCK_PADDING_BUG
805743
+#ifdef SSL_OP_TLS_BLOCK_PADDING_BUG
805743
     {
805743
         "TLS_BLOCK_PADDING_BUG", SSL_OP_TLS_BLOCK_PADDING_BUG
805743
     },
805743
 #endif
805743
-#if SSL_OP_TLS_ROLLBACK_BUG
805743
+#ifdef SSL_OP_TLS_ROLLBACK_BUG
805743
     {
805743
         "TLS_ROLLBACK_BUG", SSL_OP_TLS_ROLLBACK_BUG
805743
     },
805743
 #endif
805743
-#if SSL_OP_ALL
805743
+#ifdef SSL_OP_ALL
805743
     {
805743
         "ALL", (long)SSL_OP_ALL
805743
     },
805743
 #endif
805743
-#if SSL_OP_SINGLE_DH_USE
805743
+#ifdef SSL_OP_SINGLE_DH_USE
805743
     {
805743
         "SINGLE_DH_USE", SSL_OP_SINGLE_DH_USE
805743
     },
805743
 #endif
805743
-#if SSL_OP_EPHEMERAL_RSA
805743
+#ifdef SSL_OP_EPHEMERAL_RSA
805743
     {
805743
         "EPHEMERAL_RSA", SSL_OP_EPHEMERAL_RSA
805743
     },
805743
 #endif
805743
-#if SSL_OP_PKCS1_CHECK_1
805743
+#ifdef SSL_OP_PKCS1_CHECK_1
805743
     {
805743
         "PKCS1_CHECK_1", SSL_OP_PKCS1_CHECK_1
805743
     },
805743
 #endif
805743
-#if SSL_OP_PKCS1_CHECK_2
805743
+#ifdef SSL_OP_PKCS1_CHECK_2
805743
     {
805743
         "PKCS1_CHECK_2", SSL_OP_PKCS1_CHECK_2
805743
     },
805743
 #endif
805743
-#if SSL_OP_NETSCAPE_CA_DN_BUG
805743
+#ifdef SSL_OP_NETSCAPE_CA_DN_BUG
805743
     {
805743
         "NETSCAPE_CA_DN_BUG", SSL_OP_NETSCAPE_CA_DN_BUG
805743
     },
805743
 #endif
805743
-#if SSL_OP_NON_EXPORT_FIRST
805743
+#ifdef SSL_OP_NON_EXPORT_FIRST
805743
     {
805743
         "NON_EXPORT_FIRST", SSL_OP_NON_EXPORT_FIRST
805743
     },
805743
 #endif
805743
-#if SSL_OP_CIPHER_SERVER_PREFERENCE
805743
+#ifdef SSL_OP_CIPHER_SERVER_PREFERENCE
805743
     {
805743
         "CIPHER_SERVER_PREFERENCE", SSL_OP_CIPHER_SERVER_PREFERENCE
805743
     },
805743
 #endif
805743
-#if SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG
805743
+#ifdef SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG
805743
     {
805743
         "NETSCAPE_DEMO_CIPHER_CHANGE_BUG", SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG
805743
     },
805743
 #endif
805743
-#if SSL_OP_NO_SSLv3
805743
+#ifdef SSL_OP_NO_SSLv3
805743
     {
805743
         "NO_SSLv3", SSL_OP_NO_SSLv3
805743
     },
805743
 #endif
805743
-#if SSL_OP_NO_TLSv1
805743
+#ifdef SSL_OP_NO_TLSv1
805743
     {
805743
         "NO_TLSv1", SSL_OP_NO_TLSv1
805743
     },
805743
 #else
805743
     { "NO_TLSv1", 0 },
805743
 #endif
805743
-#if SSL_OP_NO_TLSv1_1
805743
+#ifdef SSL_OP_NO_TLSv1_1
805743
     {
805743
         "NO_TLSv1_1", SSL_OP_NO_TLSv1_1
805743
     },
805743
 #else
805743
     { "NO_TLSv1_1", 0 },
805743
 #endif
805743
-#if SSL_OP_NO_TLSv1_2
805743
+#ifdef SSL_OP_NO_TLSv1_2
805743
     {
805743
         "NO_TLSv1_2", SSL_OP_NO_TLSv1_2
805743
     },
805743
 #else
805743
     { "NO_TLSv1_2", 0 },
805743
 #endif
805743
-#if SSL_OP_NO_TLSv1_3
805743
+#ifdef SSL_OP_NO_TLSv1_3
805743
     {
805743
         "NO_TLSv1_3", SSL_OP_NO_TLSv1_3
805743
     },
805743
 #else
805743
     { "NO_TLSv1_3", 0 },
805743
 #endif
805743
-#if SSL_OP_NO_COMPRESSION
805743
+#ifdef SSL_OP_NO_COMPRESSION
805743
     {
805743
         "No_Compression", SSL_OP_NO_COMPRESSION
805743
     },
805743
 #endif
805743
-#if SSL_OP_NO_TICKET
805743
+#ifdef SSL_OP_NO_TICKET
805743
     {
805743
         "NO_TICKET", SSL_OP_NO_TICKET
805743
     },
805743
 #endif
805743
-#if SSL_OP_SINGLE_ECDH_USE
805743
+#ifdef SSL_OP_SINGLE_ECDH_USE
805743
     {
805743
         "SINGLE_ECDH_USE", SSL_OP_SINGLE_ECDH_USE
805743
     },
805743
@@ -512,7 +512,7 @@ Security::PeerOptions::parseOptions()
805743
 
805743
     }
805743
 
805743
-#if SSL_OP_NO_SSLv2
805743
+#ifdef SSL_OP_NO_SSLv2
805743
     // compliance with RFC 6176: Prohibiting Secure Sockets Layer (SSL) Version 2.0
805743
     op = op | SSL_OP_NO_SSLv2;
805743
 #endif