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 (*)
Tags ssl https virtualhost mod-ssl apache-2.2