[FUGSPBR] HTTPS Baseado em 1 IP Real
FreeBSD Hack
freebsd em vserver.com.br
Qui Maio 22 22:56:22 BRT 2003
Se você fizer a solução do redirect-port.. vc so vai estar fazendo SSL
entre a maquina IP REAL
e a maquina IP FALSO!
Vamos pensar nesta solução:?
no httpd.conf tudo isto!
além de colocar
listen *:443
<VirtualHost *:443> <---- O TRUQUE ESTA AQUI!!!
DocumentRoot /usr/local/www/site.dominio1
ServerName www.dominio1.com.br
ServerAlias dominio1.com.br
ServerAdmin webmaster em dominio1.com.br
AddType application/x-httpd-php .php
ErrorLog logs/ssl_dominio1.access.log
TransferLog logs/ssl_dominio1.error.log
SSLEngine on
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
#SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache/conf/ssl.crt/dominio1.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/dominio1.key
#SSLCACertificatePath /usr/local/apache/conf/ssl.crt
#SSLCACertificateFile /usr/local/apache/conf/ssl.crt/ca-bundle.crt
#SSLCARevocationPath /usr/local/apache/conf/ssl.crl
#SSLCARevocationFile /usr/local/apache/conf/ssl.crl/ca-bundle.crl
# Client Authentication (Type):
# Client certificate verification type and depth. Types are
# none, optional, require and optional_no_ca. Depth is a
# number which specifies how deeply to verify the certificate
# issuer chain before deciding the certificate is not valid.
#SSLVerifyClient require
#SSLVerifyDepth 10
#<Location />
#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#</Location>
# SSL Engine Options:
# Set various options for the SSL engine.
# FakeBasicAuth:
# Translate the client X.509 into a Basic Authorisation. This means that
# the standard Auth/DBMAuth methods can be used for access control. The
# user name is the `one line' version of the client's X.509 certificate.
# Note that no password is obtained from the user. Every entry in the user
# file needs this password: `xxj31ZMTZzkVA'.
# ExportCertData:
# This exports two additional environment variables: SSL_CLIENT_CERT and
# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
# server (always existing) and the client (only existing when client
# authentication is used). This can be used to import the certificates
# into CGI scripts.
# CompatEnvVars:
# This exports obsolete environment variables for backward compatibility
# to Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.0 and Stronghold 2.x. Use this
# to provide compatibility to existing CGI scripts.
# StrictRequire:
# This denies access when "SSLRequireSSL" or "SSLRequire" applied even
# under a "Satisfy any" situation, i.e. when it applies access is denied
# and no other module can change it.
#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
# SSL Protocol Adjustments:
# The safe and default but still SSL/TLS standard compliant shutdown
# approach is that mod_ssl sends the close notify alert but doesn't wait for
# the close notify alert from client. When you need a different shutdown
# approach you can use one of the following variables:
# ssl-unclean-shutdown:
# This forces an unclean shutdown when the connection is closed, i.e. no
# SSL close notify alert is send or allowed to received. This violates
# the SSL/TLS standard but is needed for some brain-dead browsers. Use
# this when you receive I/O errors because of the standard approach where
# mod_ssl sends the close notify alert.
# ssl-accurate-shutdown:
# This forces an accurate shutdown when the connection is closed, i.e. a
# SSL close notify alert is send and mod_ssl waits for the close notify
# alert of the client. This is 100% SSL/TLS standard compliant, but in
# practice often causes hanging connections with brain-dead browsers. Use
# this only for browsers where you know that their SSL implementation
# works correctly.
# Notice: Most problems of broken clients are also related to the HTTP
# keep-alive facility, so you usually additionally want to disable
# keep-alive for those clients, too. Use variable "nokeepalive" for this.
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog /var/log/httpd/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
Resumindo... você fara um name virtual host para cada dominio que você quer
no SSL!
OBS: voce pode usar o mesmo certificado para varios sites.
Faça um teste ai! deve resolver!
At 22:28 22/5/2003 -0300, you wrote:
>Oi Pessoal,
>
>Desculpem o email grande, mas vou tentar ser conciso e explicar o que ja fiz
>e ateh que ponto cheguei pra vcs tentarem
>entender o que quero saber se é possível ser feito ou outras soluçoes...
>
>Estou tendo que montar um servidor web (apache) com ssl. Porem ele aceita
>somente um dominio na porta de ssl, com as chaves e tudo mais....
>soh que vou ter mais de um dominio que precisa ter ssl, entao alguns colegas
>me falaram para acrescentar outro ip real no meu servidor que resolveria,
>mas o maior problema que possuo somente um ip real. Entao teria de fazer uma
>especie de virtualhost.
>
>Entao cheguei em algumas conclusoes e fiz os seguintes testes
> - Coloquei os dominios que iriam usar o ssl em portas diferentes no apache,
>por exemplo:
> dominio1.com:444
> dominio2.com:445
>
> - Funcionou, porem para utilizar dessa maneira o usuario tem de digitar no
>browser https://dominio1.com:444 e isso estah destinado ha usuarios finais.
>
> - Entretanto pensei na solucao de usar o redirect do apache que funcionou
>parcialmente, pois criei uma regra do tipo
> Redirect https:dominio1.com https://dominio1.com:444
>
> - Mas infelizmente o browser nao colaborou e descobri que quando se usa
>https no browser ele busca alguma coisa criptografada e
> se nao tiver a criptografia habilitada ele nao funciona.. somente
>digitando http://dominio1.com:443
>
> - Depois de algumas horas de infelicidade e quebrando a cabeca tentando
>achar uma outra maneira, resolvi voltar a origem, do lance de adicionar ip.
>
> - Pensei o seguinte, ao inves de usar ip real eu criaria varios ips falsos
>na minha interface e criava uma regra de redirecionamento pra minha
>interface e
> colocava no meu apache as regras normais de virtualhost com o ssl.
>
> - Novamente me esbarrei num problema, eu usei o natd para fazer o
>redirecionamento mas ele faz somente o redirecionamento de um host e nao dos
>outros.
>
> - Por exemplo, foi criado os seguintes itens no natd:
> redirect_port tcp 192.168.1.2:443 dominio1.com:443
> redirect_port tcp 192.168.1.3:443 dominio2.com:443
> E no apache
> <VirtualHost 192.168.1.2:443> ServerName dominio1.com
> <VirtualHost 192.168.1.3:443> ServerName dominio2.com
>
> - Lembrando que o dominio1 e o dominio2 estao apontados no dns para os
>mesmos ips reais. No apache nao tive problema, ele nao acusou estar usando o
>mesmo port/ip igual ele faz qd se tenta fazer somente um virtualhost, mas na
>hora de conectar foi só num dos dois... depende de quem eh o ultimo na regra
>do
>natd.
>
> - Entao eu queria saber se existe algum software que faz um
>redirecionamento de pacotes como natd faz baseado em hostname/dominio para
>um ip ou outro host sem quebrar o ponto a ponto que o ssl faz e
>diferenciando o pacote dominio1.com do dominio2.com?
>
> Ou se existe alguma outra sugestao pra testes...
>
>Agradeco desde ja a atencao,
>Novamente peco desculpas pelo email grande.
>
>[]`s
>Joao Pedro
>
>
>
>
>_______________________________________________________________
>Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
>Historico: http://www4.fugspbr.org/lista/html/FUG-BR/
---------------------------------------------
Leonardo Garcia
FreeBSD user since 2.1.5 (Long time ago)...
Windows sometimes is necessary, Linux NEVER.
My System NOW: FreeBSD 5.0, BeOS 5, QNX 6, SunOS (on Sun Ultra 2), WXP
_______________________________________________________________
Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/
Mais detalhes sobre a lista de discussão freebsd