Eu instalei um certificado SSL na minha instância do Ubuntu EC2 e preciso que um dos sites hospedados nesta instância esteja acessível via https.
Eu tenho vários sites hospedados no mesmo IP através de Hosts Virtuais. No entanto, eu só preciso de um site para ser acessível via https.
Tenho certeza sobre o seguinte:
- O certificado SSL está instalado corretamente
- A porta 443 está aberta no EC2
Eu tenho certeza disso porque quando eu tentei a seguinte configuração do Host Virtual no / etc / apache2 / sites-enabled / mysslsite, eu pude acessar o site via https. O problema era que todos os outros sites foram desativados porque também precisavam ser acessados SOMENTE através de https. O seguinte é o arquivo de configuração do host virtual:
<VirtualHost *>
ServerAdmin [email protected]
DocumentRoot /var/www/mysslwebsite
ServerName www.mysslwebsite.com
ServerAlias mysslwebsite.com
<Directory /var/www/mysslwebsite>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/apache2/mycertificate.com.crt
SSLCertificateKeyFile /etc/ssl/apache2/mycertificate.key
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>
Com esta configuração, embora esteja localizada nesta configuração de host virtual mysslwebsite específica, todos os outros sites não serão carregados por meio do http padrão e mostrarão a seguinte mensagem quando acessados por meio de http:
Bad Request
Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Hint: https://www.myothersite.com/
Alguém sabe como posso consertar isso?
Obrigado
------- EDITAR -------
Eu tentei os seguintes hosts virtuais:
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/mysslsite
ServerName www.mysslsiste.com
ServerAlias mysslsite.com
<Directory /var/www/mysslsite>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /var/www/mysslsist
ServerName www.mysslsist.com
ServerAlias mysslsist.com
<Directory /var/www/mysslsist>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
SSLEngine on
SSLCertificateFile /etc/ssl/apache2/certificate.com.crt
SSLCertificateKeyFile /etc/ssl/apache2/certificate.key
</VirtualHost>
#Another virtual host with another site
<VirtualHost *>
ServerAdmin [email protected]
DocumentRoot /var/www/myothersite
ServerName www.myothersite.com
ServerAlias myothersite.com
<Directory /var/www/myothersite>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>
No entanto, não consegui acessar o site via SSL. Eu poderia acessá-lo via http embora.
O Apache mostrou os seguintes avisos ao reiniciar:
NameVirtualHost *: 443 não tem o VirtualHosts
NameVirtualHost *: 80 não tem VirtualHosts
Isso é confuso, pois a porta 80 tem cerca de 10 hosts virtuais.