mod_ssl: enable SSLv3 and change behavior of "SSLProtocol All"
configuration (#1624777) Resolves: #1624777
This commit is contained in:
		
							parent
							
								
									b52ebeb33d
								
							
						
					
					
						commit
						5bf30dc156
					
				
							
								
								
									
										60
									
								
								httpd-2.4.34-enable-sslv3.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								httpd-2.4.34-enable-sslv3.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | |||||||
|  | diff --git a/modules/ssl/ssl_engine_config.c b/modules/ssl/ssl_engine_config.c
 | ||||||
|  | index 517ce30..075f7e1 100644
 | ||||||
|  | --- a/modules/ssl/ssl_engine_config.c
 | ||||||
|  | +++ b/modules/ssl/ssl_engine_config.c
 | ||||||
|  | @@ -1474,6 +1474,8 @@ static const char *ssl_cmd_protocol_parse(cmd_parms *parms,
 | ||||||
|  |  #endif | ||||||
|  |          else if (strcEQ(w, "all")) { | ||||||
|  |              thisopt = SSL_PROTOCOL_ALL; | ||||||
|  | +            // by default, ALL kw doesn't turn on SSLv3
 | ||||||
|  | +            thisopt &= ~SSL_PROTOCOL_SSLV3;
 | ||||||
|  |          } | ||||||
|  |          else { | ||||||
|  |              return apr_pstrcat(parms->temp_pool, | ||||||
|  | diff --git a/modules/ssl/ssl_engine_init.c b/modules/ssl/ssl_engine_init.c
 | ||||||
|  | index 60df45f..f6645c2 100644
 | ||||||
|  | --- a/modules/ssl/ssl_engine_init.c
 | ||||||
|  | +++ b/modules/ssl/ssl_engine_init.c
 | ||||||
|  | @@ -537,6 +537,28 @@ static apr_status_t ssl_init_ctx_tls_extensions(server_rec *s,
 | ||||||
|  |  } | ||||||
|  |  #endif | ||||||
|  |   | ||||||
|  | +/*
 | ||||||
|  | + * Enable/disable SSLProtocol. If the mod_ssl enables protocol
 | ||||||
|  | + * which is disabled by default by OpenSSL, show a warning.
 | ||||||
|  | + * "option" is for example SSL_OP_NO_SSLv3.
 | ||||||
|  | + */
 | ||||||
|  | +static void ssl_set_ctx_protocol_option(server_rec *s,
 | ||||||
|  | +                                        SSL_CTX *ctx,
 | ||||||
|  | +                                        long option,
 | ||||||
|  | +                                        int enabled,
 | ||||||
|  | +                                        const char *name)
 | ||||||
|  | +{
 | ||||||
|  | +      if (!enabled) {
 | ||||||
|  | +                SSL_CTX_set_options(ctx, option);
 | ||||||
|  | +      }
 | ||||||
|  | +      else if (SSL_CTX_get_options(ctx) & option) {
 | ||||||
|  | +                    SSL_CTX_clear_options(ctx, option);
 | ||||||
|  | +                    ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s, APLOGNO(02904)
 | ||||||
|  | +                                 "Allowing SSLProtocol %s even though it is disabled "
 | ||||||
|  | +                                 "by OpenSSL by default on this system", name);
 | ||||||
|  | +      }
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  |  static apr_status_t ssl_init_ctx_protocol(server_rec *s, | ||||||
|  |                                            apr_pool_t *p, | ||||||
|  |                                            apr_pool_t *ptemp, | ||||||
|  | @@ -695,9 +719,13 @@ static apr_status_t ssl_init_ctx_protocol(server_rec *s,
 | ||||||
|  |      } | ||||||
|  |      if (prot == TLS1_1_VERSION && protocol & SSL_PROTOCOL_TLSV1) { | ||||||
|  |          prot = TLS1_VERSION; | ||||||
|  | +        ssl_set_ctx_protocol_option(s, ctx, SSL_OP_NO_TLSv1,
 | ||||||
|  | +                                    protocol & SSL_PROTOCOL_TLSV1, "TLSv1");
 | ||||||
|  |      } | ||||||
|  |  #ifndef OPENSSL_NO_SSL3 | ||||||
|  |      if (prot == TLS1_VERSION && protocol & SSL_PROTOCOL_SSLV3) { | ||||||
|  | +        ssl_set_ctx_protocol_option(s, ctx, SSL_OP_NO_SSLv3,
 | ||||||
|  | +                                    protocol & SSL_PROTOCOL_SSLV3, "SSLv3");
 | ||||||
|  |          prot = SSL3_VERSION; | ||||||
|  |      } | ||||||
|  |  #endif | ||||||
| @ -13,7 +13,7 @@ | |||||||
| Summary: Apache HTTP Server | Summary: Apache HTTP Server | ||||||
| Name: httpd | Name: httpd | ||||||
| Version: 2.4.34 | Version: 2.4.34 | ||||||
| Release: 5%{?dist} | Release: 6%{?dist} | ||||||
| URL: https://httpd.apache.org/ | URL: https://httpd.apache.org/ | ||||||
| Source0: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2 | Source0: https://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2 | ||||||
| Source1: index.html | Source1: index.html | ||||||
| @ -81,6 +81,7 @@ Patch37: httpd-2.4.34-r1827912+.patch | |||||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1397243 | # https://bugzilla.redhat.com/show_bug.cgi?id=1397243 | ||||||
| Patch58: httpd-2.4.34-r1738878.patch | Patch58: httpd-2.4.34-r1738878.patch | ||||||
| Patch59: httpd-2.4.34-r1555631.patch | Patch59: httpd-2.4.34-r1555631.patch | ||||||
|  | Patch60: httpd-2.4.34-enable-sslv3.patch | ||||||
| 
 | 
 | ||||||
| # Security fixes | # Security fixes | ||||||
| 
 | 
 | ||||||
| @ -241,6 +242,7 @@ interface for storing and accessing per-user session data. | |||||||
| 
 | 
 | ||||||
| %patch58 -p1 -b .r1738878 | %patch58 -p1 -b .r1738878 | ||||||
| %patch59 -p1 -b .r1555631 | %patch59 -p1 -b .r1555631 | ||||||
|  | %patch60 -p1 -b .enablesslv3 | ||||||
| 
 | 
 | ||||||
| # Patch in the vendor string | # Patch in the vendor string | ||||||
| sed -i '/^#define PLATFORM/s/Unix/%{vstring}/' os/unix/os.h | sed -i '/^#define PLATFORM/s/Unix/%{vstring}/' os/unix/os.h | ||||||
| @ -729,6 +731,10 @@ exit $rv | |||||||
| %{_rpmconfigdir}/macros.d/macros.httpd | %{_rpmconfigdir}/macros.d/macros.httpd | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Tue Aug 28 2018 Luboš Uhliarik <luhliari@redhat.com> - 2.4.34-6 | ||||||
|  | - mod_ssl: enable SSLv3 and change behavior of "SSLProtocol All" | ||||||
|  |   configuration (#1624777) | ||||||
|  | 
 | ||||||
| * Tue Aug 21 2018 Joe Orton <jorton@redhat.com> - 2.4.34-5 | * Tue Aug 21 2018 Joe Orton <jorton@redhat.com> - 2.4.34-5 | ||||||
| - mod_ssl: further TLSv1.3 fix (#1619389) | - mod_ssl: further TLSv1.3 fix (#1619389) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user