Un problema común después de agregar un certificado SSL es que su navegador aún muestra su sitio como inseguro. Esto ocurre con mayor frecuencia porque hay enlaces en su página que todavía apuntan a HTTP en lugar de HTTPS. Por ejemplo, mire el siguiente código para vincular una imagen.
<img src=” http://www.example.com/images/pic_mountain.jpg ” alt=”Mountain View” />
Observe cómo la URL está directamente vinculada con ‘http’ al principio. Al visitar el sitio en Firefox, se muestra lo siguiente:
Puede ver que el ícono del candado en la esquina superior izquierda del navegador muestra un ícono de advertencia.
Si hace clic en el icono de advertencia, el texto explica que hay “elementos sin cifrar” en la página que está viendo.
En el ejemplo anterior, esto sucede porque la imagen se vinculó usando ‘HTTP’ y no ‘HTTPS’. Otra forma de confirmar lo que en su sitio está vinculado de forma insegura es utilizar el siguiente sitio: whynopadlock.com
Hay tres soluciones:
Los enlaces absolutos son la ubicación completa de la URL de su archivo. Esto incluye el nombre de dominio. Por ejemplo:
Opción 1:
<img src =”https://www.example.com/images/pic_mountain.jpg” alt=”Mountain View” />
Los enlaces relativos no incluyen el nombre de dominio. Estos enlaces apuntan a un archivo local en su lugar. Por ejemplo:
Opción 2:
<img src=”images/pic_mountain.jpg” alt=”Mountain View” />
En lugar de actualizar manualmente los enlaces en su código, puede agregar las siguientes líneas al archivo .htaccess de su sitio.
Opción 3:
<ifModule mod_headers.c> Header always set Content-Security-Policy "upgrade-insecure requests;" </IfModule>
Lo que vas a ver a continuación, fuerza a cualquier requerimiento http a ser reescrito usando https. Por ejemplo, el siguiente código fuerza el requerimiento http://example.com a cargar https://example.com. Esto también fuerza a los recursos vinculados directamente (imágenes, css, etc.) a usar https:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Opción 1:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Opción 2: En este ejemplo, asegúrate de cambiar “example.com” a tu dominio.
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L,NE]