Como executar um virtualhost 443 sem um certificado SSL?

3

Eu tenho uma diretiva virtualhost que exibe um erro 404 personalizado se um subdomínio inválido for inserido:

<VirtualHost *:80> # the first virtual host
  ServerName site_not_found
  RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:80>
  ServerName example.com
  ServerAlias ??.example.com
</VirtualHost>

Eu quero configurar um virtualhost para mostrar o mesmo erro personalizado por meio de uma conexão HTTPS. Eu tentei o seguinte:

<VirtualHost *:443> # the first virtual host
  ServerName site_not_found
  RedirectMatch 404 ^/(?!custom_error)
</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias ??.example.com
# SSL options, other options, and stuff defined here.
</VirtualHost>

Mas o servidor não inicia e um erro é emitido:

Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0)

Parece que um certificado SSL é necessário, mesmo se o SSLEngine não estiver ativado para esse host virtual. Existe uma maneira de contornar o problema além de fornecer um certificado? Desligar o módulo não é uma opção, pois preciso de SSL para o servidor virtual exemplo.com.

    
por Question Overflow 29.09.2012 / 12:01

3 respostas

5

It seems that an SSL certificate is required even if the SSLEngine is not turned on for this virtual host. Is there a way to get around the problem besides providing a cert?

Não - quando o navegador tiver https no URL, ele espera falar SSL. isso não vai falhar. O Apache está sendo legal dizendo isso, caso contrário, você teria alguns erros obscuros do navegador para compreender. Portanto, você precisará configurar o SSL no Apache antes de poder usar a porta 443 .

Se você não quiser que os avisos do navegador sobre ele sejam um certificado SSL incorreto, você precisará comprar um de uma autoridade de certificação. Você pode ter acesso gratuito ao link , que está sendo aceito em mais e mais lugares, mas provavelmente não têm o mesmo nível de reconhecimento que os pagos (especialmente em máquinas mais antigas). Eu uso isso para meus sites de desenvolvimento e ainda não vi um aviso sobre eles serem não confiáveis, mas, novamente, eu uso apenas sistemas operacionais / navegadores relativamente novos.

    
por 29.09.2012 / 12:05
1

Sim, existe uma maneira:

Configure a Diretiva de escuta do Apache (no Ubuntu /etc/apache2/ports.conf )

Haverá algo assim: Listen *:443

Você pode aplicar o HTTP nele adicionando o Protocolo a isso:

Listen *:443 http

Dessa forma, o Apache2 é capaz de escutar na porta 443 como um simples servidor HTTP

Encontrado aqui: link

    
por 08.12.2015 / 15:45
0

Ignorando o erro do Apache devido a não ter nenhum certificado SSL, o que você está tentando fazer não é possível, a menos que você crie ou compre um certificado curinga para cobrir os subdomínios "inválidos".

Se todos os seus clientes forem internos, você poderá criar uma autoridade de assinatura mini e instalar todos os certificados CA em todas as suas caixas.

Se seus clientes forem externos, você terá que comprar um certificado curinga que custa cerca de 600 USD

    
por 29.09.2012 / 12:53