Eu apliquei a correção POODLE para o Apache via "SSLProtocol All -SSLv2 -SSLv3" no arquivo ssl.conf para o nosso servidor Apache, mas estou tendo problemas com a autenticação do Cliente CAC via "SSLVerifyClient require". Eu confirmei se eu definir "SSLVerifyClient none" nosso aplicativo da web pode ser acessado via HTTPS e usa o protocolo correto de TLSv1 mas depois que eu definir "SSLVerifyClient require" (que é necessário porque nosso aplicativo da Web é habilitado para CAC) recebo uma página não ser exibido no IE (o IE tem SSLv2 e SSLv3 desativado, mas TLS1.0-3 ativado).
O cliente é o Windows 7 de 32 bits com o IE 8. O servidor é o Windows 2003 SP2.
Eu fiz uma captura de pacotes entre o cliente e o servidor. O primeiro cliente hello é para TLSv1.2, um erro fatal Close Notify é então enviado. Como meu servidor não suporta TLSv1.1 ou TLSv1.2, um Client Hello é enviado para TLSv1. O processo vai até a solicitação de certificado do cliente Server Hello Done e, em seguida, outro erro fatal Close Notify é enviado pelo cliente ..
Screen Cap here: link
Aqui estão os fluxos completos do TCP:
O primeiro stream de um cliente hello é enviado e tenta negociar o TLSv1.2 que o servidor rejeita, pois ele não suporta e envia uma notificação de fechamento. O segundo fluxo envia um cliente Olá por TLSv1.0 é enviar etc .. Mas isso é de uma única conexão para o servidor web ..
1º stream: i.imgur.com/pmiXn9t.jpg
2º fluxo: i.imgur.com/NIh1lsZ.jpg
A conexão está em TLSv1, como verifiquei no link . O servidor concorda mesmo com uma cifra TLS.
O Chrome funciona bem, mesmo com SSLv2 e SSLv3 desativados por meio de "chrome.exe --ssl-version-min = tls1"
Além disso, esta versão do Apache usa mod_ossl "O módulo mod_ossl permite criptografia strong para o Oracle HTTP Server. Este módulo da Oracle é um plug-in para o Oracle HTTP Server que permite que o servidor use SSL. É muito semelhante ao módulo OpenSSL O módulo mod_ossl é baseado na implementação do SSL da Oracle, que suporta SSL versão 3 e TLS versão 1, e é baseado na tecnologia Certicom e RSA Security. " Eu não sei como fazer upgrade para suportar o TLS v1.1 e o TLS v1.2, já que estou com a versão mais recente do OHS 11g da Oracle e este é um módulo personalizado feito pela Oracle.
ATUALIZAÇÃO:
Eu habilitei o nível de log de depuração nos logs do Apache OHS. Agora recebo os seguintes erros ao usar o IE para tentar acessar o aplicativo da Web:
[Mon Nov 10 08:16:05 2014] [error] [client X.X.X.X] OHS:2079 nzos handshake error, nzos_Handshake returned 28858(server X.X.X.X:443, client X.X.X.X)
[Mon Nov 10 08:16:05 2014] [error] OHS:2171 NZ Library Error: SSL protocol error [Hint: the client probably speaks HTTPS over HTTP protocol]
[Mon Nov 10 08:16:05 2014] [info] [client X.X.X.X] OHS:2073 Connection to child 107 closed with standard shutdown(server X.X.X.X:443, client X.X.X.X)
[Mon Nov 10 08:16:05 2014] [info] [client X.X.X.X] Connection to child 107 established (server X.X.X.X:443)
[Mon Nov 10 08:16:06 2014] [info] [client X.X.X.X] OHS:2079 nzos handshake error, nzos_Handshake returned 28864(server X.X.X.X:443, client X.X.X.X)
[Mon Nov 10 08:16:06 2014] [info] OHS:2171 NZ Library Error: SSL IO error [Hint: the client stop the connection unexpectedly]
[Mon Nov 10 08:16:06 2014] [info] [client X.X.X.X] OHS:2073 Connection to child 107 closed with standard shutdown(server X.X.X.X:443, client X.X.X.X)
Alguém sabe como corrigir isso no Apache 2.2.22.0 do Oracle HTTP Server (OHS)
Aqui está um trecho do meu arquivo ssl.conf:
###################################################################
# Oracle HTTP Server mod_ossl configuration file: ssl.conf #
###################################################################
# OHS Listen Port
Listen 443
<IfModule ossl_module>
##
## SSL Global Context
##
## All SSL configuration in this context applies both to
## the main server and all SSL-enabled virtual hosts.
##
#
# Some MIME-types for downloading Certificates and CRLs
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
# Pass Phrase Dialog:
# Configure the pass phrase gathering process.
# The filtering dialog program ('builtin' is a internal
# terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog builtin
# Inter-Process Session Cache:
# Configure the SSL Session Cache: First the mechanism
# to use and second the expiring timeout (in seconds).
SSLSessionCache "shmcb:${ORACLE_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/ssl_scache(512000)"
SSLSessionCacheTimeout 300
# Semaphore:
# Configure the path to the mutual exclusion semaphore the
# SSL engine uses internally for inter-process synchronization.
<IfModule mpm_winnt_module>
SSLMutex "none"
</IfModule>
<IfModule !mpm_winnt_module>
SSLMutex pthread
</IfModule>
##
## SSL Virtual Host Context
##
<VirtualHost *:443>
# ServerAdmin [email protected]
DocumentRoot "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/htdocs/asset"
DirectoryIndex remagnum.html
ServerName TTSDS09083.TIMPO.OSD.MIL
# ServerAlias www.dummy-host.example.com
<IfModule ossl_module>
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
#SSLCipherSuite SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
SSLCipherSuite ALL:+HIGH:-MEDIUM:-LOW:-SSLv2:-SSLv3
SSLProtocol All -SSLv2 -SSLv3
# Client Authentication (Type):
# Client certificate verification type and depth. Types are
# none, optional and require.
#SSLVerifyClient none
SSLVerifyClient require
# SSL Certificate Revocation List Check
# Valid values are On and Off
SSLCRLCheck Off
#Path to the wallet
SSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars +ExportCertData
</FilesMatch>
<Directory "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/cgi-bin">
SSLOptions +StdEnvVars +ExportCertData
</Directory>
</IfModule>
</VirtualHost>
</IfModule>