Recentemente, movemos um servidor Exchange por trás de um proxy reverso devido à perda de um IP público.
Eu consegui configurar o proxy reverso ( httpd proxy_http
).
Mas há um problema para a configuração SSL.
Ao acessar a interface do OWA com o Firefox, tudo está ok e funcionando.
Ao acessar com MSIE ou Chrome, eles não recuperam o bom Certificado SSL.
Acho que isso se deve ao múltiplo host virtual do httpd.
Existe uma solução alternativa para garantir que o MSIE / Chrome solicite o certificado para o bom nome de domínio como o FF faz?
Já foi testado com o host virtual SSL:
SetEnvIf User-Agent ".*MSIE.*" value BrowserMSIE
Header unset WWW-Authenticate
Header add WWW-Authenticate "Basic realm=exchange.domain.com"
A:
ProxyPreserveHost On
também:
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
Ou:
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
E muito ProxyPass
e ProxyReversePath
on /exchweb /exchange /public
etc ...
E ainda não parece funcionar. Alguma pista?
Obrigado.
Editar 1: precisão das versões
# openssl version
OpenSSL 0.9.8k-fips 25 Mar 2009
/usr/sbin/httpd -v
Server version: Apache/2.2.11 (Unix)
Server built: Mar 17 2009 09:15:10
Versões do navegador:
MSIE : 8.0.6001
Opera: Version 11.01 Revision 1190
Firefox: 3.6.15
Chrome: 10.0.648.151
Sistema operacional:
Windows Vista 32bits.
Eles são todos compatíveis com o SNI. Testei essa tarde link
Você está certo Shane Madden, eu tenho vários sites no mesmo IP público (e mesmo porto também). O servidor em si é apenas um proxy reverso, que reescreve endereços para servidores internos.
O host padrão é um site dev, configurado com o certificado que não corresponde ao OWA (é claro ... teria sido fácil)
<VirtualHost *:443>
ServerName dev2.domain.com
ServerAdmin [email protected]
CustomLog "| /usr/sbin/rotatelogs /var/log/httpd/access-%y%m%d.log 86400" combined
ErrorLog "| /usr/sbin/rotatelogs /var/log/httpd/error-%y%m%d.log 86400"
LogLevel warn
RewriteEngine on
SetEnvIfNoCase X-Forwarded-For .+ proxy=yes
SSLEngine on
SSLProtocol -all +SSLv3 +TLSv1
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL:+SSLv3
SSLCertificateFile /etc/httpd/ssl/domain.com.crt
SSLCertificateKeyFile /etc/httpd/ssl/domain.com.key
RewriteCond %{HTTP_HOST} dev2\.domain\.com
RewriteRule ^/(.*)$ http://dev2.domain.com/$1 [L,P]
</VirtualHost>
O certificado de domínio é um * .domain.com
O segundo vHost é:
<VirtualHost *:443>
ServerName exchange.domain2.com
ServerAdmin [email protected]
CustomLog "| /usr/sbin/rotatelogs /var/log/httpd/exchange/access-%y%m%d.log 86400" combined
ErrorLog "| /usr/sbin/rotatelogs /var/log/httpd/exchange/error-%y%m%d.log 86400"
LogLevel warn
SSLEngine on
SSLProxyEngine On
SSLProtocol -all +SSLv3 +TLSv1
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL:+SSLv3
SSLCertificateFile /etc/httpd/ssl/exchange.pem
SSLCertificateKeyFile /etc/httpd/ssl/exchange.key
RewriteEngine on
SetEnvIfNoCase X-Forwarded-For .+ proxy=yes
RewriteCond %{HTTP_HOST} exchange\.domain2\.com
RewriteRule ^/(.*)$ https://exchange.domain2.com/$1 [L,P]
</VirtualHost>
e seu certificado é somente exchange.domain2.com.
Eu presumo que o SNI está em algum lugar não ativado no meu servidor. As versões do openssl e do apache parecem boas para o suporte a SNI.
A única coisa que eu não sei é se o httpd foi compilado com as boas opções. (Eu suponho que é um pacote fedora).