我通过我们的Apache服务器的ssl.conf文件中的“SSLProtocol All -SSLv2 -SSLv3”应用了Apache的POODLE修复程序,但是在通过“SSLVerifyClient require”进行CAC客户端身份validation时遇到问题。 我已经确认,如果我设置“SSLVerifyClient none”我们的Web应用程序可以通过HTTPS访问,并使用正确的TLSv1协议,但是一旦我设置“SSLVerifyClient require”(因为我们的Web应用程序启用了CAC,在IE中显示(IE禁用了SSLv2和SSLv3,但启用了TLS1.0-3)。
客户端是IE 8的Windows 7 32位。服务器是Windows 2003 SP2。
我已经做了客户端和服务器之间的数据包捕获。 第一个客户问候是TLSv1.2然后发送致命错误closures通知。 因为我的服务器不支持TLSv1.1或TLSv1.2,所以客户端Hello是为TLSv1发送的。 该过程一直到客户端证书申请服务器你好完成然后另一个致命错误closures通知是由客户端发送..
屏幕盖在这里: http : //i.imgur.com/y3GvjlP.jpg
这里是完整的TCPstream:
第一个stream客户端hello发送并尝试协商TLSv1.2服务器拒绝,因为它不支持并发送一个closures通知。 第二个stream通过TLSv1.0发送一个客户端hello发送等。但这是从一个单一的连接到web服务器..
第一stream:i.imgur.com/pmiXn9t.jpg第二stream:i.imgur.com/NIh1lsZ.jpg
连接是在TLSv1,我已经从https://www.ssllabs.com/ssltest/validation。 服务器甚至同意使用TLS密码。
即使通过“chrome.exe –ssl-version-min = tls1”禁用了SSLv2和SSLv3,Chrome也能正常工作
另外这个版本的Apache使用mod_ossl“mod_ossl模块为Oracle HTTP Server提供了强大的encryptionfunction,这个Oracle模块是Oracle HTTP Server的一个插件,它使服务器能够使用SSL,与OpenSSL模块mod_ssl非常相似。 mod_ossl模块基于Oracle的SSL实现,它支持SSL版本3和TLS版本1,并基于Certicom和RSA Security技术。 我不知道如何升级这个以支持TLS v1.1和TLS v1.2,因为我在Oracle上发布了最新的OHS 11g版本,这是由Oracle制作的一个自定义模块。
更新:
我已经在OHS Apache日志上启用了debugging日志级别。 使用IE尝试访问Web应用程序时,我现在收到以下错误:
[Mon Nov 10 08:16:05 2014] [error] [client XXXX] OHS:2079 nzos handshake error, nzos_Handshake returned 28858(server XXXX:443, client XXXX) [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 XXXX] OHS:2073 Connection to child 107 closed with standard shutdown(server XXXX:443, client XXXX) [Mon Nov 10 08:16:05 2014] [info] [client XXXX] Connection to child 107 established (server XXXX:443) [Mon Nov 10 08:16:06 2014] [info] [client XXXX] OHS:2079 nzos handshake error, nzos_Handshake returned 28864(server XXXX:443, client XXXX) [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 XXXX] OHS:2073 Connection to child 107 closed with standard shutdown(server XXXX:443, client XXXX)
任何人都知道如何解决这个问题在Oracle HTTP Server(OHS)Apache 2.2.22.0上?
这是我的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>
SSLCipherSuite ALL:+ HIGH:-MEDIUM:-LOW:-SSLv2:-SSLv3
由于您禁用了所有SSL 3.0密码,并且自TLS 1.0和TLS 1.1只使用SSL 3.0密码,并且由于IE 8不支持TLS 1.2,所以不会有共享密码。 您可能会在日志文件中find关于此的一些错误消息。
请注意,POODLE攻击是SSL 3.0协议中的一个devise缺陷,而不是SSL 3.0密码。 因此,你只应该禁用协议,而不是密码。
此外,您当前的密码套件包含非常危险的密码,因为它包含不需要任何forms的服务器标识的ADH密码。 用这样的密码,中间人攻击是可能的。
编辑:在你的评论你提到客户端使用Windows 7. Windows 7应该支持TLS 1.2,但由于客户端显然没有做系统上的更新(否则将没有使用IE 8),可能是那里是IE 8和TLS 1.2的问题。