Mailing List Archive

[httpd2.4.57]Possible conflicts between VHosts with SSL and LimitRequestLine
Hi everyone,

I'm running :
Server version: Apache/2.4.57 (Debian)
Server built: 2023-04-13T03:26:51
Server's Module Magic Number: 20120211:127
Server loaded: APR 1.7.2, APR-UTIL 1.6.3, PCRE 10.42 2022-12-11
Compiled using: APR 1.7.2, APR-UTIL 1.6.3, PCRE 10.42 2022-12-11
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"

I've been struggling for almost 2 weeks on this weird issue.
I have multiple vhosts working perfectly either in http and httpS with let's encrypt.

Yet for one vhost we need to set limitrequestline to a higher value. I'm familiar with the procedure and I changed the value in the vhost. Sadly it didn't worked as expected.
After searching in any place, enabling/disabling securities, modules etc... I found another conf conflicting with mine.

The ssl.conf vhost placed in conf-enabled is causing troubles. However its content is not really complicated :

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
Listen 443
<VirtualHost *:443>
ServerName publicdomainname.tld
SSLEngine on
SSLCertificateFile "/etc/ssl/certs/apache-httpd.crt"
SSLCertificateKeyFile "/etc/ssl/private/apache-httpd.key"
</VirtualHost>

My other vhost is as follows :

<VirtualHost *:443>
ServerName otherdomain.tld
.../...
<IfModule mod_ssl.c>
RequestHeader set X-Forwarded-Proto "https"
</IfModule>
.../....
LimitRequestLine 10240
.../...
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

When both are enabled, the LimitRequestLine is not considered when reaching htps://otherdomain.tld . When I comment the Vhost in ssl.conf everything works fine.

Is there any "permeability" between vhosts ? is there any precedence that could cause this vhost to be considered as the "master" of some options? Could anyone lead me to wha I am doing wrong?

Sorry if I'm not clear, any question and/or feedback would be appreciated.

Regards,

Florent THOMAS
Re: [httpd2.4.57]Possible conflicts between VHosts with SSL and LimitRequestLine [ In reply to ]
The hostname, normally in the Host header, is not read until after the
request line. So it cannot be effectively set in name based vhosts.

The manual already warns about it

On Sun, Jan 21, 2024, 9:26?AM Florent Thomas
<florent.thomas@mind-and-go.com.invalid> wrote:

> Hi everyone,
>
> I'm running :
> *Server version: Apache/2.4.57 (Debian)*
> *Server built: 2023-04-13T03:26:51*
> *Server's Module Magic Number: 20120211:127*
> *Server loaded: APR 1.7.2, APR-UTIL 1.6.3, PCRE 10.42 2022-12-11*
> *Compiled using: APR 1.7.2, APR-UTIL 1.6.3, PCRE 10.42 2022-12-11*
> *Architecture: 64-bit*
> *Server MPM: event*
> * threaded: yes (fixed thread count)*
> * forked: yes (variable process count)*
> *Server compiled with....*
> * -D APR_HAS_SENDFILE*
> * -D APR_HAS_MMAP*
> * -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)*
> * -D APR_USE_PROC_PTHREAD_SERIALIZE*
> * -D APR_USE_PTHREAD_SERIALIZE*
> * -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT*
> * -D APR_HAS_OTHER_CHILD*
> * -D AP_HAVE_RELIABLE_PIPED_LOGS*
> * -D DYNAMIC_MODULE_LIMIT=256*
> * -D HTTPD_ROOT="/etc/apache2"*
> * -D SUEXEC_BIN="/usr/lib/apache2/suexec"*
> * -D DEFAULT_PIDLOG="/var/run/apache2.pid"*
> * -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"*
> * -D DEFAULT_ERRORLOG="logs/error_log"*
> * -D AP_TYPES_CONFIG_FILE="mime.types"*
> * -D SERVER_CONFIG_FILE="apache2.conf"*
>
> I've been struggling for almost 2 weeks on this weird issue.
> I have multiple vhosts working perfectly either in http and httpS with
> let's encrypt.
>
> Yet for one vhost we need to set limitrequestline to a higher value. I'm
> familiar with the procedure and I changed the value in the vhost. Sadly it
> didn't worked as expected.
> After searching in any place, enabling/disabling securities, modules
> etc... I found another conf conflicting with mine.
>
> The *ssl.conf* vhost placed in conf-enabled is causing troubles. However
> its content is not really complicated :
>
> *LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so*
> *Listen 443*
> *<VirtualHost *:443>*
> * ServerName publicdomainname.tld*
> * SSLEngine on*
> * SSLCertificateFile "/etc/ssl/certs/apache-httpd.crt"*
> * SSLCertificateKeyFile "/etc/ssl/private/apache-httpd.key"*
> *</VirtualHost>*
>
> My other vhost is as follows :
>
> *<VirtualHost *:443>*
> * ServerName otherdomain.tld*
> * .../...*
> * <IfModule mod_ssl.c>*
> * RequestHeader set X-Forwarded-Proto "https"*
> * </IfModule>*
> * .../.... *
> * LimitRequestLine 10240*
> *.../... *
> *Include /etc/letsencrypt/options-ssl-apache.conf*
> *</VirtualHost>*
>
> When both are enabled, the LimitRequestLine is not considered when
> reaching htps://otherdomain.tld . When I comment the Vhost in ssl.conf
> everything works fine.
>
> Is there any "permeability" between vhosts ? is there any precedence that
> could cause this vhost to be considered as the "master" of some options?
> Could anyone lead me to wha I am doing wrong?
>
> Sorry if I'm not clear, any question and/or feedback would be appreciated.
>
> Regards,
>
> Florent THOMAS
>
Re: [httpd2.4.57]Possible conflicts between VHosts with SSL and LimitRequestLine [ In reply to ]
>
>
>>
>> Is there any "permeability" between vhosts ? is there any precedence that
>> could cause this vhost to be considered as the "master" of some options?
>> Could anyone lead me to wha I am doing wrong?
>>
>
Yes, the "default vhost" for a set of name based hosts has its
configuration applied as soon as connection level details are known (rather
than request level details)

>
Re: [httpd2.4.57]Possible conflicts between VHosts with SSL and LimitRequestLine [ In reply to ]
Great thanks for your quick answer.

If I understand well setting LimitRequestLine 10240 in name based virtualhost ? So what is your recommendation.

Anyway, thanks for the time already spent on this.

Regards



Florent THOMAS

? +33 972 457 755
? [ mailto:florent.thomas@mind-and-go.com | florent.thomas@mind-and-go.com ]


Mind & Go
14, Rue Pierre Cartelet | 66000 PERPIGNAN [ https://mind-and-go.com/ | ] [ https://www.facebook.com/Mind-And-Go-296462057466508/ ] [ https://twitter.com/MindAndGo | ] [ https://www.linkedin.com/company/mind-and-go | ]


De: "Eric Covener" <covener@gmail.com>
À: "users" <users@httpd.apache.org>
Envoyé: Dimanche 21 Janvier 2024 14:48:03
Objet: Re: [users@httpd] [httpd2.4.57]Possible conflicts between VHosts with SSL and LimitRequestLine

The hostname, normally in the Host header, is not read until after the request line. So it cannot be effectively set in name based vhosts.

The manual already warns about it

On Sun, Jan 21, 2024, 9:26 AM Florent Thomas <florent.thomas@mind-and-go.com.invalid> wrote:



Hi everyone,

I'm running :
Server version: Apache/2.4.57 (Debian)
Server built: 2023-04-13T03:26:51
Server's Module Magic Number: 20120211:127
Server loaded: APR 1.7.2, APR-UTIL 1.6.3, PCRE 10.42 2022-12-11
Compiled using: APR 1.7.2, APR-UTIL 1.6.3, PCRE 10.42 2022-12-11
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"

I've been struggling for almost 2 weeks on this weird issue.
I have multiple vhosts working perfectly either in http and httpS with let's encrypt.

Yet for one vhost we need to set limitrequestline to a higher value. I'm familiar with the procedure and I changed the value in the vhost. Sadly it didn't worked as expected.
After searching in any place, enabling/disabling securities, modules etc... I found another conf conflicting with mine.

The ssl.conf vhost placed in conf-enabled is causing troubles. However its content is not really complicated :

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
Listen 443
<VirtualHost *:443>
ServerName publicdomainname.tld
SSLEngine on
SSLCertificateFile "/etc/ssl/certs/apache-httpd.crt"
SSLCertificateKeyFile "/etc/ssl/private/apache-httpd.key"
</VirtualHost>

My other vhost is as follows :

<VirtualHost *:443>
ServerName otherdomain.tld
.../...
<IfModule mod_ssl.c>
RequestHeader set X-Forwarded-Proto "https"
</IfModule>
.../....
LimitRequestLine 10240
.../...
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

When both are enabled, the LimitRequestLine is not considered when reaching htps://otherdomain.tld . When I comment the Vhost in ssl.conf everything works fine.

Is there any "permeability" between vhosts ? is there any precedence that could cause this vhost to be considered as the "master" of some options? Could anyone lead me to wha I am doing wrong?

Sorry if I'm not clear, any question and/or feedback would be appreciated.

Regards,

Florent THOMAS