Configurar ssl-Cloudflare en un dominio/subdominio apoyados con ispconfig ☁️
Este tutorial se hizo con un servidor con estas caracteristicas:
UBUNTU 14.04
ISPConfig 3.1.3
APACHE 2
En ocasiones se requiere colocar https en un web-site dentro de otro web-site de ISPConfig, para esas situaciones ISPConfig no esta preparado, asi que aqui dejo un pequeño hack para poder configurarlo. La solucion a la queremos llegar es la siguiente:
a).- Tenemos un site-web https://www.misitio.com el cual esta alojado en “/var/www/clients/client1/misitio.com/web”.
b).- Se requiere crear un subdominio https://www.images.misitio.com el cual va a puntar a “/var/www/clients/client1/misitio.com/web/wp-content/uploads”.
El primer paso es comprobar que nuestro servidor tiene soporte para Let’s Encrypt, lo cual haremos iniciando sesión via SSH y ejecutando el comando
certbot –version
el cual nos devolvera algo similar a esto:
certbot 0.4.1
En caso de que no estar instalado, ejecutar las siguientes instrucciones:
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache
1.- Vamos a los dns de cloudflare y ahi creamos un sub-dominio en este caso images2 que apunte a la misma ip que nuestro dominio principal.
Recomiendo esperar unos 5 minutos en lo que se propagan los dns
2.- Entramos en IPSConfig, 2.- Vamos a sitios, 3.- Damos click en sitio web 4.- Click en Añadir sitio web
3.- Configuramos nuestro sitio normalmente pero ademas seleccionamos SSL y Let’s Encrypt SSL y hacemos click en Save.
Nota: Después de dar guardar y que termine de aplicarse la configuracion (osea una vez que desaparece el circulo rojo en la parte superior derecha de ISP config) hay que cerciorarnos de que realmente se aplico la configuracion osea que si estan marcados los check “Let’s Encrypt SSL” y “SSL“, en caso de que no esten marcados debemos revisar el log en “/var/log/letsencrypt/letsencrypt.log” (En ocaciones se debe a que se excedio el numero de intentos o de dominios-servidor que es de 5 por semana)
4.- Una vez creado el virtualhost con ISPConfig podemos editar la ruta en donde van a estar nuestros web-site con ssl, para ello debemos editar el archivo virtualhost que creo ISPConfig en “/etc/apache2/sites-available/images.weytodocuba.com.vhost” ahi vamos a cambiar el path pordefault que puede ser asi “/var/www/clients/client1/web4/web” o asi “/var/www/images.dominio.com/web” por este “/var/www/clients/client1/web1/web/wp-content/uploads”
5.- Reiniciamos apache con
service apache2 restart
6.- En cloudflare / crypto debe esta seleccionado “Full (strictic)”
7.- Es probable que algunos css o js (bajo https) se vean asi, en ese caso solo debemos purgar la cache en cloudflare y/o poner y quitar el modo develop.
7.1.- Para activar el develop mode lo debemos seleccionar aqui
7.2.-Y para purgar la cache en cloudflare hay que ir “Caching” hacer click en “Purge everything”
Nota: En caso de editar en un sitio web de ISPConfig este restaurara el virtualhost y todo lo que hayamos editado en el virtualhost se perdera.
8.- Para comprobar que este funcionando nuestro ssl debemo escribir alguna url de alguna de nuestras imagenes por ejemplo “https://images2.misitio.com/2017/08/4-2.jpg”
9.- Ahora debemos actualizar la carpeta de subida de imagens predeterminada al sub-dominio de wordpress con este comando.
UPDATE `wp_options`
SET `option_value` = 'https://imges.misitio.com'
WHERE `option_name` = 'upload_url_path';
10.- Una vez que se le ha asignado valor a este parametro de WordPress,
podra actualizarse en el portal de administración de wordpress en el menú Ajustes/Medios
11.- Con searchreplacedb2.php hay que cambiar la url pordefault “http://www.misitio.com/wp-content/uploads” de worpress por la nueva del subdominio ya con https “https://images2.misitio.com”
12.- Se ha actualizado la url en la base de datos, pero Google ha rastreado e indexado las imágenes antiguas. Así que redirigiremos las URL de la imagen antigua a la nueva URL para que Google sepa que esas imágenes son las mismas. Para ello, agregue la siguiente línea en su archivo .htaccess.
RedirectMatch 301 ^/wp-content/uploads/(.*)$ http://images.misitio.com/$1
13.- Ademas se recomienda forzar el https en la url, esto lo hacemos agregando esta lineas de codigo en el .htaccess que esta en la rais de nuestra instalacion de wordpress:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://misitio.com/$1 [R,L]
Y listo eso es todo lo que se requiere para crear cualquier url segura con ISPConfig
Fuentes:
Añadir Cloudflare Universal SSL a sitio WordPress
Alojar imagenes de WordPress en subdominio.
Ave que vuela, a la cazuela.