Configurazione SNI Apache per l'invio di un avviso di handshake: unrecognized_name


0

Sto cercando di ottenere quello che alcuni anni fa è stato un problema a causa della mancanza di server configurati che ha causato

"avviso di stretta di mano: nome_recognized"

quando un client abilitato SNI (per Java 1.7 o client più grandi) inviava durante l'handshake il file

Estensione nome_server, nome_server: [tipo = nome_host (0), valore = nome host]

per esempio questa domanda era come evitare questo:

https://stackoverflow.com/questions/7615645/ssl-handshake-alert-unrecognized-name-error-since-upgrade-to-java-1-7-0 .

La mia versione di Apache è la 2.4.33, su Ubuntu 16.04. e il file di configurazione che uso è simile al seguente:

<IfModule ssl_module>
Listen 8095
</IfModule>

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

ServerName localhost

<IfModule mod_ssl.c>
        <VirtualHost _default_:8095>
                        ServerName value.that.does.not.match.the.cn.in.certificate
                        ServerAlias value.that.does.not.match.the.cn.in.certificate
                        DocumentRoot /var/www/html

                        SSLEngine on
                        SSLCertificateFile /path_to_certificates/selfsigned.cert
                        SSLCertificateKeyFile /path_to_certificates/selfsigned.key
                        SSLVerifyClient none
                        SSLVerifyDepth 10
        </VirtualHost>
</IfModule>

Ho fatto alcune ricerche e ho usato il seguente comando per verificare che SNI sia abilitato per il nome host che espongo tramite apache:

openssl s_client -servername hostanametocheck -tlsextdebug -connect hostanametocheck:8095 2>/dev/null | grep "server name"

per cui il risultato è:

TLS server extension "server name" (id=0), len=0

che da quello che ho letto è un indicatore che Apache invia questa estensione durante l'handshake che nel caso di client Java> 1.7 finirebbe come un'eccezione durante l'handshake.

Mi aspetto che il mio client Java (1.8) riceva quell'avviso e l'handshake fallirà, ma quando sono atterrato qui non lo è. Trascorro già abbastanza tempo a cercare di capire questo, ma sembra che vada oltre le mie conoscenze di rete e Linux.

A proposito, sto eseguendo l'apache sul mio computer di sviluppo, quindi la porta 8095 anziché 443. Ho mappato il nome host su localhost. SNI è abilitato sul lato client come posso vedere nei registri di handshake che l'estensione è stata inviata

Extension server_name, server_name: [type=host_name (0), value=hostname.that.does.not.match.cn.in.certificate.com]

Il tuo aiuto sarebbe molto apprezzato!


Sono un po 'confuso. Stai tentando di FISSARE l'errore o CAUSA l'errore?
Michael Hampton

Sto cercando di causare l'errore :)
razvanspt,

Risposte:


0

Avevo causato l'errore con successo, con Apache 2.2.22 (ma alcune versioni precedenti, senza patch) in quanto sembra che abbiano iniziato a rimuovere quell'avviso dall'invio a partire dalla 2.4.1 e alcune versioni precedenti. Maggiori informazioni sul seguente link.

https://bz.apache.org/bugzilla/show_bug.cgi?id=56241

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.