No puedo desactivar SNI en Apache

No puedo desactivar SNI en Apache

Cuando voy a:http://web-sniffer.net/y verifique los encabezados de mi sitio (https://www.ejemplo.org), obtengo un código de estado 200

Pero cuando uso el botón de opción HTTP/1.0 (sin encabezado Host), obtengo un código de estado 400 (Solicitud incorrecta).

Mi registro de Apache dice "Nombre de host www.example.org proporcionado a través de SNI, pero no se proporcionó ningún nombre de host en la solicitud HTTP"

Leí que para que funcione necesito desactivar la directiva "SSLStrictSNIVHostCheck" en mi archivo de configuración de Apache.

Agregué esta directiva, pero sigo recibiendo el código de estado 400 al crear un HTTP/1.0 (sin encabezado de host)

Como referencia, este es mi archivo ports.conf:

ServerName www.example.org

NameVirtualHost *:80
Listen 10.0.0.1:80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
    NameVirtualHost *:443
    SSLStrictSNIVHostCheck off
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Este es mi archivo SSL predeterminado:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName www.example.org
    ServerAdmin [email protected]
    SSLStrictSNIVHostCheck off


    Alias /static /home/ubuntu/public_html/static
    <Directory /home/ubuntu/public_html/static>
        Order deny,allow
        Allow from all
</Directory>

Alias /media /home/ubuntu/public_html/media
<Directory /home/ubuntu/public_html/media >
        Order deny,allow
        Allow from all
</Directory>

WSGIScriptAlias / /home/ubuntu/public_html/apache.wsgi

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

SSLProtocol all -SSLv2
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

SSLCertificateFile /etc/ssl/crt/example_org.crt
SSLCertificateKeyFile /etc/ssl/crt/server.key
SSLCertificateChainFile /etc/ssl/crt/ca.crt
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
</Directory>

BrowserMatch "MSIE [2-6]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>

Respuesta1

Por lo que puedo decir al mirar elcódigo fuente de apache, no puedes hacer eso concualquierOpción de configuración de Apache. TúDEBEenvíe un encabezado Host: que coincida con lo que se envió a través de SNI para que Apache lo acepte.

RFC 6066 sección 11.1especifica que los servidores webDEBEcompruebe que el encabezado Host: y el nombre de host enviados a través de SNI coincidan.

Como cuestión práctica, cualquier software que hable HTTP que se haya producido en los últimos 15 años aproximadamente debería enviar el encabezado Host: con cada solicitud. Si realmente tienes algo que no lo es, es que es demasiado antiguo para seguir en Internet o está roto.

Respuesta2

Parece que esta prueba (sitio) no funciona. Si utiliza HTTP/1.0 sin encabezado de host, es poco probable que alguna vez haya enviado una extensión SNI. No creo que necesites "arreglar" tu sitio para admitir esto.

información relacionada