Todos mis pasos de configuración de Apache (desde una instalación limpia):

Todos mis pasos de configuración de Apache (desde una instalación limpia):

Estoy intentando configurar mi sitio web para redirigir todo el tráfico al subdominio www y redirigir todas las solicitudes http a solicitudes https. Sé que no es un problema con los registros DNS (que incluyen un registro A para www y nube) porque mi configuración funcionó perfectamente hasta hace aproximadamente una semana cuando reinstalé todo. El problema que experimenta es que se comporta de forma muy extraña.

(Reemplacé mi dominio con "ejemplo.com" para desinfectar la publicación).

Lo que no funciona:

http://example.com        - redirects to https://www.example.com,
                            but yields SSL_PROTOCOL_ERROR
http://cloud.example.com  - redirects to https://www.example.com/myfiles/,
                            but yields SSL_PROTOCOL_ERROR
https://example.com       - no redirect to www, and yields SSL_PROTOCOL_ERROR
https://www.example.com   - yields SSL_PROTOCOL_ERROR
https://cloud.example.com - no redirect to www, and yields SSL_PROTOCOL_ERROR

Qué funciona:

http://www.example.com - works like a dream

Todos mis pasos de configuración de Apache (desde una instalación limpia):

sudo echo -e "\\ndeb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list

sudo apt-get update && sudo apt-get -y upgrade

# Because you'll want the latest certbot...
sudo apt-get -y install python-certbot-apache -t jessie-backports

sudo apt-get -y install apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql php5-cli

sudo a2enmod rewrite

Coloque lo siguiente (como root) al final de /etc/apache2/apache2.conf

ServerName example.com

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>
<Directory /var/www/(.*)>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Directory>

Creando los VirtualHosts y los Certificados

sudo tee /etc/apache2/sites-available/www.conf << "EOP"
<VirtualHost *:80>
  ServerName www.example.com
  Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
  DocumentRoot /var/www/html/
  ServerName www.example.com
</VirtualHost>
EOP

sudo a2ensite www

sudo service apache2 restart

sudo certbot --apache --domain www.example.com
#I apply this to /etc/apache2/sites/enabled/default-ssl.conf

sudo mkdir -p /var/www/html/myfiles/

sudo tee /etc/apache2/sites-available/cloud.conf << "EOP"
<VirtualHost *:80>
  ServerName cloud.example.com
  Redirect / https://www.example.com/myfiles/
</VirtualHost>
<VirtualHost *:443>
  ServerName cloud.example.com
  Redirect / https://www.example.com/myfiles/
</VirtualHost>
EOP

sudo a2ensite cloud

sudo service apache2 restart

sudo apache2ctl configtest #which reports everything's ok

Más información sobre el servidor:

El servidor es una instalación limpia de Debian 8.6 (amd64) y el número de versión de Apache es 2.4, por lo que la estabilidad del software no es el problema.

Mi problema SSL

A cat /var/log/apache2/error.logme tira lo siguiente:

[ssl:warn] [pid 11737] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name

Respuesta1

su certificado DEBE coincidir con el nombre de dominio.

sudo certbot --apache --domain www.example.com --domain cloud.example.com --domain example.com

puede tener hasta 100 SAN (nombres alternativos de sujetos) por certificado LE.

También puede utilizar varios certificados con la misma IP con SNI (que su versión de openssl debería admitir)

También debe enumerar sus opciones y archivos SSL antes del</VirtualHost>

https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04

información relacionada