Sim, é possível vincular o Apache a uma porta diferente e ainda usar o SSL.
Substitua as diretivas Listen
na sua configuração do apache. A configuração deve conter uma linha como
Listen 80
Listen 443
O Apache irá escutar nas portas definidas com essas opções de configuração. Substitua-os e o Apache escutará em uma porta diferente.
No entanto, você ainda precisa informar ao Apache o que deve ser exibido nas portas acima. Suponha que você queira que o Apache comece a escutar na porta 8080 (simples) e 4433 (ssl). Então você precisa substituir as diretivas Listen para
Listen 8080
Listen 4433
Depois disso, defina dois VirtualHosts nessas portas assim:
NameVirtualHost 0.0.0.0:8080
NameVirtualHost 0.0.0.0:4433
<VirtualHost 0.0.0.0:8080>
ServerName the.server.name
ServerAlias *
DocumentRoot /var/www/plain
</VirtualHost>
<VirtualHost 0.0.0.0:4433>
ServerName the.server.name
ServerAlias *
DocumentRoot /var/www/ssl
SSLEngine On
SSLCertificateFile /the/certificate/file
SSLCertificateKeyFile /the/key/file
</VirtualHost>
Se você não tiver mais nenhuma definição do VirtualHost, não precisará incluir a diretiva ServerAlias
(ou o ServerName
).
Se você reiniciar o Apache, ele ouvirá no 8080 conexões não criptografadas e na porta 4433 para SSL. Certifique-se de não ter nenhuma definição antiga do VirtualHost que contenha o número de porta errado.