Eu tenho um servidor da web LAMP e nele existe o domínio https://sslhosting.cz/ .
Primeiro, anexei um arquivo de configuração geral do Let's Encrypt, que alterei de acordo com minhas necessidades:
/etc/letsencrypt/options-ssl-apache.conf
# Baseline setting to Include for all Let's Encrypt SSL sites
SSLEngine on
# Intermediate configuration, tweak to your needs
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDH$
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
# Add vhost name to log entries:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" vhost_combined
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
#CustomLog /var/log/apache2/access.log vhost_combined
#LogLevel warn
#ErrorLog /var/log/apache2/error.log
# Always ensure Cookies have "Secure" set (JAH 2012/1)
#Header edit Set-Cookie (?i)^(.*)(;\s*secure)??((\s*;)?(.*)) "$1; Secure$3$4"
# HSTS = HTTP Strict Transport Security
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" env=HTTPS
Header always set X-Frame-Options DENY
# OCSP Stapling
SSLCACertificateFile /etc/apache2/certificates/letsencrypt-crosssigned-stapling.pem
SSLUseStapling on
Preciso ter a porta 80 configurada no Virtualhost para um site HTTPS? Observe que eu quero que o HTTP seja redirecionado para HTTPS.
Segue a configuração específica do site:
/etc/apache2/sites-available/sslhosting.cz-le-ssl.conf
<VirtualHost *:80>
ServerName sslhosting.cz
ServerAlias www.sslhosting.cz
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.sslhosting\.cz
RewriteRule ^(.*)$ https://sslhosting.cz/$1 [R=301,L]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName sslhosting.cz
ServerAlias www.sslhosting.cz
DocumentRoot /var/www/sslhosting.cz/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/sslhosting.cz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sslhosting.cz/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)
</IfModule>
Agora, a pergunta:
Preciso ter a porta 80 configurada no LAMP para um site HTTPS?
A resposta à sua pergunta intitulada "Preciso ter a porta 80 configurada no LAMP para um site HTTPS?" é não, você não . Você pode executar uma pilha LAMP em qualquer porta que desejar. Escolhas comuns incluem 80.443 (SSL/TLS), 8080, 8000, etc.
Dentro da pergunta, você adiciona uma ruga que muda um pouco a resposta.
"Observe que eu quero que HTTP seja redirecionado para HTTPS."
Se você deseja que seu servidor da web faça esse redirecionamento e se você assumir a porta http padrão 80/tcp, a resposta será sim . Você precisa ter a porta 80 configurada para concluir o redirecionamento.
Para completar, posso pensar em algumas outras maneiras de obter uma configuração de trabalho que não dependa da porta 80 do seu servidor da web.
Uma delas é usar um balanceador de carga na frente que lidaria com o redirecionamento.
A segunda é usar o iptables para redirecionar a porta. Observe que isso não vai lidar com o requisito SSL/TLS no seu caso.