host virtual do nome do apache - dois domínios e SSL

2

Estou tentando configurar o Apache (2.2.3) para executar dois sites com SSL usando domínios e endereços IP diferentes. Ambos os sites funcionam bem na porta 80, mas quando tentei ativar o SSL para o site2, recebi um erro ssl_error_bad_cert_domain; website2 pega o certificado SSL para website1.

Aqui está minha configuração no httpd.conf:

# Website1
NameVirtualHost 192.168.10.1:80

<VirtualHost 192.168.10.1:80>
DocumentRoot /var/www/html
ServerName www.website1.org
</VirtualHost>

NameVirtualHost 192.168.10.1:443

<VirtualHost 192.168.10.1:443>
SSLEngine On
SSLCertificateFile conf/ssl/website1.cer
SSLCertificateKeyFile conf/ssl/website1.key
</VirtualHost>

# Website2
NameVirtualHost 192.168.10.2:80

<VirtualHost 192.168.10.2:80>
DocumentRoot /var/www/html/chart
ServerName www.website2.org
</VirtualHost>

NameVirtualHost 192.168.10.2:443

<VirtualHost 192.168.10.2:443>
SSLEngine On
SSLCertificateFile conf/ssl/website2.cer
SSLCertificateKeyFile conf/ssl/website2.key
</VirtualHost>

Atualização: Em resposta a Shane (isso não caberia na caixa de comentário), aqui está a saída do apachectl -S:

VirtualHost configuration:
192.168.10.2:80       is a NameVirtualHost
         default server www.website2.org (/etc/httpd/conf/httpd.conf:1033)
         port 80 namevhost www.website2.org (/etc/httpd/conf/httpd.conf:1033)

192.168.10.2:443      is a NameVirtualHost
         default server bogus_host_without_reverse_dns (/etc/httpd/conf/httpd.conf:1040)
         port 443 namevhost bogus_host_without_reverse_dns (/etc/httpd/conf/httpd.conf:1040)

192.168.10.1:80       is a NameVirtualHost
         default server www.website1.org (/etc/httpd/conf/httpd.conf:1017)
         port 80 namevhost www.website1.org (/etc/httpd/conf/httpd.conf:1017)

192.168.10.1:443      is a NameVirtualHost
         default server bogus_host_without_reverse_dns (/etc/httpd/conf/httpd.conf:1024)
         port 443 namevhost bogus_host_without_reverse_dns (/etc/httpd/conf/httpd.conf:1024)

wildcard NameVirtualHosts and _default_ servers:
_default_:443          192.168.10.1 (/etc/httpd/conf.d/ssl.conf:81)
Syntax OK
    
por Tom 12.04.2012 / 15:36

8 respostas

1

SSL vhosts não são NameVirtualHosts - eles são vhosts baseados em IP.

Remova o NameVirtualHost *:443 da sua configuração.

    
por 12.04.2012 / 17:23
1

Por favor, remova

NameVirtualHost 192.168.10.1:443

e

NameVirtualHost 192.168.10.2:443

Não faz sentido ativar o material de hospedagem virtual baseado em nome do Apache para conexões SSL / TLS ou você gostaria de usar a extensão SNI.

    
por 12.04.2012 / 19:33
1

Aqui está como eu consegui trabalhar. Eu tive que mover a configuração ssl do httpd.conf e configurar dois virtualhosts no ssl.conf.

link

# Website1
<VirtualHost 192.168.10.1:80>
DocumentRoot /var/www/html
ServerName www.website1.org
</VirtualHost>

# Website2
<VirtualHost 192.168.10.2:80>
DocumentRoot /var/www/html/chart
ServerName www.website2.org
</VirtualHost>

ssl.conf

<VirtualHost 192.168.10.1:443>
DocumentRoot "/var/www/html/"
ServerAdmin [email protected]
ServerName www.website1.org
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:
+EXP:+eNULL
SSLCertificateFile /etc/httpd/conf/ssl.crt/website1.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/website1.key
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>

<VirtualHost 192.168.10.2:443>
DocumentRoot "/var/www/html/chart/"
ServerAdmin [email protected]
ServerName www.website2.org
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:
+EXP:+eNULL
SSLCertificateFile /etc/httpd/conf/ssl.crt/website2.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/website2.key
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
    
por 13.04.2012 / 14:55
1

Agora que o Apache2 lida com virtualhosts baseados em nomes para HTTP AND HTTPS , eu recomendaria configurar seus domínios em seu próprio arquivo de configuração. Assim como o Apache faz agora com seus diretórios de configuração "sites-available / sites-enabled". Coloque as declarações http e https em um arquivo e salve-o no diretório "sites-enabled" ou salve onde quiser e associe-o sym.

Como: /etc/apache2/sites-enabled/Website_ONE.com.conf:

<VirtualHost *:80>
  ServerName Website_ONE.com
  #if you want to redirect to https: 
  Redirect permanent / https://Website_ONE.com/
  DocumentRoot /WWW/Website_ONE.com/ 
</VirtualHost>

<VirtualHost *:443>
  ServerName Website_ONE.com
  DocumentRoot /WWW/Website_ONE.com/ 

  ### SSL Setup ###
  SSLEngine on
  SSLCertificateFile /etc/SSL_conf/Website_ONE.com/cert.pem
  SSLCertificateKeyFile /etc/SSL_conf/Website_ONE.com/privkey.pem
  SSLCertificateChainFile /etc/SSL_conf/Website_ONE.com/chain.pem
</VirtualHost>

Em seguida: /etc/apache2/sites-enabled/Website_TWO.com.conf:

<VirtualHost *:80>
  ServerName Website_TWO.com
  #if you want to redirect to https: 
  Redirect permanent / https://Website_TWO.com/
  DocumentRoot /WWW/Website_TWO.com/ 
</VirtualHost>

<VirtualHost *:443>
  ServerName Website_TWO.com
  DocumentRoot /WWW/Website_TWO.com/ 

  ### SSL Setup ###
  SSLEngine on
  SSLCertificateFile /etc/SSL_conf/Website_TWO.com/cert.pem
  SSLCertificateKeyFile /etc/SSL_conf/Website_TWO.com/privkey.pem
  SSLCertificateChainFile /etc/SSL_conf/Website_TWO.com/chain.pem
</VirtualHost>

Esses arquivos podem, como eu disse, ser mantidos em qualquer lugar - desde que sejam seguros (ou seja, legíveis apenas pelas pessoas que precisam de acesso) - e vinculados à pasta sites-enabled . Mesmo com os arquivos de chave e tudo isso. Faz com que seja mais fácil para o IMHO rastrear seus hosts virtuais se todas as configurações estiverem em um arquivo com o nome do domínio. BTW, eu usaria caminhos absolutos na sua configuração vs relativa - como você fez na sua resposta.

    
por 09.05.2017 / 18:30
0

Tente remover ou comentar o bloco <VirtualHost _default_:443> em /etc/httpd/conf.d/ssl.conf .

    
por 12.04.2012 / 18:18
0

Você precisa do ServerName www.server [1 | 2} .com na seção

    
por 28.10.2013 / 04:11
0

Se você realmente executar o apache 2.2.3, o problema é que você não pode fazer Virtual Hosting baseada em nome no SSL, porque o seu mod_ssl não o suporta.

Você precisa da versão 2.2.12 ou posterior do apache para isso.

Você pode, no entanto, usar hospedagem virtual baseada em IP. A solução que você postou está realmente fazendo isso (dois sites em dois endereços IP diferentes)

    
por 09.05.2017 / 20:18
-1

Você não pode usar vhosts com SSL, a menos que você use um desenvolvimento bastante recente chamado SNI. Você também pode usar um certificado curinga (por exemplo, * .myhostname.com) se todos os seus TLDs forem iguais.

Para mais detalhes, consulte:

por 12.04.2012 / 18:02