O que é diferente entre 'Using-Default-VirtualHost' e 'Using-Correctly-Named-VirtualHost'?

1

Conclusão: Acredito que eu incompatibilizei a versão openssl quando compilei o apache. Funciona agora; e eu recompilei com o openssl que já está instalado. Obrigado pela sua ajuda, descrente.

Informações Adicionais: Eu descobri outras configurações relacionadas do server.xml no conector do tomcat. Então, quando o domínio está errado, o tomcat manipula todas as partes, e o domínio não está errado, o tomcat e o apache lidam simultaneamente e pode ser um problema com uma versão diferente do openssl.

... ou não.

A pergunta é bem estranha, eu sei, mas não consigo imaginar que haja diferença.

Informações básicas:

O servidor está funcionando corretamente em http: // connection. (domínio: test.domain.com) (Apache 2.2.31 (compilado com o openssl 1.0.1u), Tomcat (6.0.35, já instalado antes)

Eu já tenho a certificação * .domain.com para https: // conexão, e já a usei em 'service.domain.com', então "https: // service.domain.com" está funcionando em outro servidor / machine / IP

E, finalmente, tentei instalar o SSL em "test.domain.com" para permitir https: // conexão.

Problema:

E eu encontrei ..

Se eu definir '.conf' errado,

#Wrong.conf
<VirtualHost *:443>
    ServerName testy.domain.com #whatever, but not 'test.domain.com' 
    ....
</VirtualHost *:443>

está funcionando quando eu conecto https: // test.domain.com. (e usará o VirtualHost padrão; há apenas um *: 443 e, quando removi esse host virtual, recebi um erro e não consegui me conectar.) Não há problema e obtenho conexão e certificação perfeitas, e eu posso ler a página que eu quero.

No entanto, se eu definir '.conf' "corretamente"

#Correct.conf
<VirtualHost *:443>
    ServerName test.domain.com
    ...
</VirtualHost *:443>

e NÃO consigo conectar https: // test.domain.com.

Informações detalhadas quando eu verifiquei com outras ferramentas, como curl -verbose,

quando eu uso o curl com # Wrong.conf

* TLSv1.2 (OUT), TLS handshake, Client hello (1)
* TLSv1.2 (IN), TLS handshake, Server hello (2)
* TLSv1.2 (IN), TLS handshake, Certificate ....
....
(and succeed)

e quando eu uso o curl com # Correct.conf

* TLSv1.2 (OUT), TLS handshake, Client hello (1)
* Unknown SSL protocol error in connection to test.domain.com:443
* Curl_http_done: called premature == 1
0  0  0  0  0  0  0  0  --:--:-- --:--:-- --:--:--  0
* Closing connection 0
curl: (35) Unknown SSL protocol error in connection to test.domain.com:443

Outras partes, como "IP", "TCP_NODELAY", mesmo seleção de cifra e arquivo CA são exatamente iguais (checadas duas vezes, e eu não mudei)

Então, voltando à primeira pergunta,

Existe alguma diferença entre usar "Host Virtual Padrão" e "Host Virtual Nomeado Corretamente"?

E alguma sugestão?

Atualização:

Sinto muito pelo seu inconveniente.

Quando funciona ; Errado .conf apachectl -S mostra ...

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80     is a NameVirtualHost
    default server what.test.domain.com (/holy/apache/conf/httpd.conf:573)
    port 80 namevhost what.test.domain.com (/holy/apache/conf/httpd.conf:573)
    port 80 namevhost whatever.test.domain.com (/holy/apache/conf/httpd.conf:580)
    ...
    port 80 namvevhost test.domain.com (/holy/apache/conf/httpd.conf:615)
*:443    is a NameVirtualHost
    default server testy.domain.com (/holy/apache/conf/httpd.conf:541)
    port 443 namevhost testy.domain.com (/holy/apache/conf/httpd.conf:541) 
Syntax OK

Quando não funciona ; Corrigir .conf apachectl -S mostra ...

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80     is a NameVirtualHost
    default server what.test.domain.com (/holy/apache/conf/httpd.conf:573)
    port 80 namevhost what.test.domain.com (/holy/apache/conf/httpd.conf:573)
    port 80 namevhost whatever.test.domain.com (/holy/apache/conf/httpd.conf:580)
    ...
    port 80 namvevhost test.domain.com (/holy/apache/conf/httpd.conf:615)
*:443    is a NameVirtualHost
    default server test.domain.com (/holy/apache/conf/httpd.conf:541)
    port 443 namevhost test.domain.com (/holy/apache/conf/httpd.conf:541) 
Syntax OK

Eu não fiz dois .conf para isso, mas mudei o ServerName com a minha mão (então não há diferença em outra área).

Atualização: registros

Desculpe pelo atraso. Finalmente eu tenho algumas diferenças para esse problema. Obrigado, incrédulo.

No "cenário de trabalho", posso ver o que imaginei

[debug] ssl_engine_kernel.c(1961): [client (**My IP**)] No matching SSL virtual host for servername test.domain.com found (using default/first virtual host)
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 read client hello A
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 write server hello A
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 write change cipher spec A
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 write finished A
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 flush data

...

[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 read finished A
[debug] ssl_engine_kernel.c(1838): OpenSSL: Handshake: done
[info] Connection: Client IP: (**My IP**), Protocol: TLSv1.2, Cipher: ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)

Mas eu encontrei partes suspeitas em 'não-trabalho-cenário'.

1) Comece com o aperto de mão duplo.

[info] [client (**My IP**)] Connection to child 0 established (server test.domain.com:443)
[info] [client (**My IP**)] Connection to child 1 established (server test.domain.com:443)
[info] Seeding PRNG with 144 bytes of entropy
[info] Seeding PRNG with 144 bytes of entropy
[debug] ssl_engine_kernel.c(1834): OpenSSL: Handshake: start
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: before/accept initialization
[debug] ssl_engine_kernel.c(1834): OpenSSL: Handshake: start
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: before/accept initialization

2) não parte desse handshaking bem-sucedido (esse log é do cenário de trabalho)

[debug] ssl_engine_kernel.c(1961): [client (**My IP**)] No matching SSL virtual host for servername test.domain.com found (using default/first virtual host)
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 read client hello A
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 write server hello A
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 write change cipher spec A
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 write finished A
[debug] ssl_engine_kernel.c(1842): OpenSSL: Loop: SSLv3 flush data
[info] [client (**My IP**)] Connection to child 4 established (server **testy**.domain.com:443)

3) muitas falhas de segmentação

[notice] child pid 4683 exit signal Segmentation fault (11)
[notice] child pid 4684 exit signal Segmentation fault (11)
[notice] child pid 4685 exit signal Segmentation fault (11)
[notice] child pid 4686 exit signal Segmentation fault (11)
[notice] child pid 4687 exit signal Segmentation fault (11)

4) Log de proxy

[debug] proxy_util.c(1901): proxy: grabbed scoreboard slot 0 in child 4727 for worker proxy:reverse
[debug] proxy_util.c(1921): proxy: worker proxy:reverse already initialized
[debug] proxy_util.c(2017): proxy: initialized single connection worker 0 in child 4727 for (*)
[info] [client (**My IP**)] Connection to child 5 established (server test.domain.com:443)
[info] Seeding PRNG with 144 bytes of entropy
[debug] proxy_util.c(1901): proxy: grabbed scoreboard slot 0 in child 4728 for worker proxy:reverse
[debug] proxy_util.c(1921): proxy: worker proxy:reverse already initialized
[debug] proxy_util.c(2017): proxy: initialized single connection worker 0 in child 4728 for (*)
[notice] child pid 4727 exit signal Segmentation fault (11)
[debug] proxy_util.c(1901): proxy: grabbed scoreboard slot 0 in child 4729 for worker proxy:reverse
[debug] proxy_util.c(1921): proxy: worker proxy:reverse already initialized
[debug] proxy_util.c(2017): proxy: initialized single connection worker 0 in child 4729 for (*)
    
por KML 16.11.2016 / 11:18

0 respostas