Não é possível desligar o SNI no Apache

Não é possível desligar o SNI no Apache

Quando eu for para:http://web-sniffer.net/e verifique os cabeçalhos do meu site (https://www.example.org), recebo um código de status 200

Mas quando uso o botão de opção HTTP/1.0 (sem cabeçalho Host), recebo um código de status 400 (Solicitação incorreta).

Meu log do Apache diz "Nome do host www.example.org fornecido via SNI, mas nenhum hostnmae fornecido na solicitação HTTP"

Eu li que para fazer funcionar preciso desligar a diretiva "SSLStrictSNIVHostCheck" no meu arquivo conf do Apache.

Eu adicionei esta diretiva, mas ainda estou recebendo o código de status 400 ao fazer um HTTP/1.0 (sem Host Header)

Para referência, este é meu arquivo 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 é meu arquivo SSL padrão:

<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>

Responder1

Pelo que posso dizer olhando para oCódigo-fonte do Apache, você não pode fazer isso comqualquerOpção de configuração do Apache. VocêDEVEenvie um cabeçalho Host: correspondente ao que foi enviado via SNI para o Apache aceitá-lo.

RFC 6066 seção 11.1especifica que os servidores webDEVEverifique se o cabeçalho Host: e o nome do host enviados via SNI correspondem.

Na prática, qualquer software que fale HTTP produzido nos últimos 15 anos ou mais deveria enviar o cabeçalho Host: com cada solicitação. Se você realmente tem algo que não é, é muito antigo para ainda estar na Internet ou está quebrado.

Responder2

Parece que este teste (site) está quebrado. Se você usar HTTP/1.0 sem cabeçalho de host, é improvável que você tenha enviado uma extensão SNI. Não acho que você precise "consertar" seu site para oferecer suporte a isso.

informação relacionada