Tarde o temprano todos querrán hacerlo incluso si no es necesario debido a la carencia de transmisión de datos delicados.
Google empuja todo el tiempo con recomendaciones sobre el uso de un certificado SSL en un sitio web. Incluso los SEO’s se vuelven locos sabiendo que Google le da un poco (léase correctamente como “poco”) de importancia al día de hoy si un sitio es HTTPS o no. También en futuras versiones de Chrome los sitios que no sean https se mostrarán con una leyenda que dirá que el sitio no es seguro incluso si es un blog pedorro.
Así que como dije antes, eventualmente todos usaremos https en el futuro, así que porque no empezar ahora?
Encontré una presentación de Alejandro Gil Mialdea que resume algunas cosas a tener en cuenta para migrar un sitio en Wordpress de HTTP a HTTPS usando certificados de Comodo o de Let’s Encrypt. Lo bueno de esta última opción es que es gratuita y soportada por organizaciones como Automattic, Facebook, Google y otros.
Empresas de hosting como Dreamhost ofrecen integraciones con Let’s Encrypt para tener un certificado SSL gratis y sin mucho esfuerzo. Lo bueno de Dreamhost puntualmente es que el certificado se renueva automáticamente sin necesidad de hacer mucho. Solo definiendo a que dominio queremos aplicarle el certificado, las cosas funcionan.
En el caso de Fotogeek, cuando apliqué el certificado HTTPS en el sitio, luego tuve que aplicar reglas de redireccionamento para que cualquier página que sea solicitada en HTTP, se redireccione a la misma con HTTPS. En mi caso lo hice agregando esto en el .htaccess
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Pero como muchas de las imágenes del sitio son levantadas desde HTTP porque así funcionaba antes, algunos navegadores me avisaban que si bien la página era HTTPS, algunos recursos eran llamados desde direcciones no seguras. Mismo las hojas de estilo y funciones en JavaScript.
Luego de estar probando cambiar desde la base de datos todos los registros que digan HTTP a HTTPS, desistí y opté por empezar de cero. Teniendo un backup previo de todo, exporte un XML con todas las entradas del sitio y las importe nuevamente en un dominio de prueba que tengo.
Luego hice un backup de todo el sitio y avance borrando todo fotogeek (base de datos, archivos, todo). Instalé el certificado en el dominio y una vez que lo tenía andando, instalé WordPress desde cero pero desde la url HTTPS. Mientras exporte en un XML todo del dominio de prueba y lo volví a importar a fotogeek.
Esto lo hice así porque de esa manera podía importar no sólo los posts sino todos los archivos asociados a cada post. Y al hacerlo, WordPress importo y definió que la url de cada imagen tenía el mismo protocolo que el resto del sitio, o sea HTTPS.
Seguramente haya una forma más fácil de hacer esto pero a mi me resultó esta.
¿Conocés otra manera de hacerlo? Me encantaría aprenderla. Dejá tu comentario.