Skip to main content

Protección del sitio de GitHub Pages con HTTPS

HTTPS agrega una capa de encriptación que evita que otros se entrometan o manipulen el tráfico en tu sitio. Puede aplicar HTTPS para que el GitHub Pages sitio redirija de forma transparente todas las solicitudes HTTP a HTTPS.

¿Quién puede utilizar esta característica?

GitHub Pages se encuentra disponible en los repositorios públicos con GitHub Free y con GitHub Free para las organizaciones, y en los repositorios públicos y privados con GitHub Pro, GitHub Team, GitHub Enterprise Cloud, y GitHub Enterprise Server. Consulte planes de GitHub.

Los usuarios con permisos de administrador para un repositorio pueden aplicar HTTPS para un GitHub Pages sitio.

Acerca de HTTPS y GitHub Pages

Todos los GitHub Pages sitios, incluidos aquellos que están correctamente configurados con un dominio personalizado, admiten HTTPS y la aplicación obligatoria de HTTPS. Para más información sobre los dominios personalizados, consulta Acerca de dominios personalizados y páginas de GitHub y Solución de problemas de dominios personalizados y páginas de GitHub.

GitHub Pages los sitios creados después del 15 de junio de 2016 y que usan dominios github.io se sirven automáticamente mediante HTTPS.

Los sitios GitHub Pages no se deben usar para realizar transacciones que impliquen el envío de información confidencial como contraseñas o números de tarjeta de crédito.

Advertencia

a menos que su empresa use Enterprise Managed Users, GitHub Pages los sitios están disponibles públicamente en Internet de forma predeterminada, incluso si el repositorio del sitio es privado o interno. Puedes publicar un sitio de forma privada si administras el control de acceso del sitio. En caso contrario, si tienes datos confidenciales en el repositorio del sitio, tal vez te interese eliminarlos antes de publicarlo. Para más información, consulta Acerca de los repositorios y Cambiar la visibilidad de tu sitio de GitHub Pages.

Nota:

En RFC3280 se indica que la longitud máxima del nombre común debe ser de 64 caracteres. Por lo tanto, todo el nombre de dominio del GitHub Pages sitio debe tener menos de 64 caracteres para que se cree correctamente un certificado.

Forzar HTTPS para tu sitio GitHub Pages

  1. En GitHub, navega al repositorio de tu sitio.

  2. Debajo del nombre del repositorio, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la sección "Código, planeación y automatización" de la barra lateral, haga clic en Páginas.

  4. En "GitHub Pages", seleccione Aplicar HTTPS.

Solución de problemas para el aprovisionamiento de certificados (error de tipo "Certificado no creado aún")

Cuando configuras o cambios tu dominio personalizado en los ajustes de las Páginas, comenzará una verificación automática de DNS. Esta comprobación determina si la configuración de DNS está configurada para permitir GitHub obtener un certificado automáticamente. Si la comprobación se realiza correctamente, GitHub pone en cola un trabajo para solicitar un certificado TLS de Let's Encrypt. Al recibir un certificado válido, GitHub lo carga automáticamente en los servidores que controlan la terminación TLS para Pages. Cuando este proceso se complete con éxito, se mostrará una marca de verificación al costado de tu nombre de dominio personalizado.

El proceso podría tomar algo de tiempo. Si el proceso no se ha completado varios minutos después de hacer clic en Guardar, intente hacer clic en Quitar junto al nombre de dominio personalizado. Vuelva a escribir el nombre de dominio y haga clic en Guardar de nuevo. Esto cancelará y volverá a iniciar el proceso de aprovisionamiento.

Resolver problemas con contenido mixto

Si habilitas HTTPS para tu sitio GitHub Pages, pero el HTML de tu sitio sigue haciendo referencia a imágenes, CSS o JavaScript mediante HTTP, entonces tu sitio está sirviendo contenido mixto. Ofrecer contenido mixto puede hacer que tu sitio sea menos seguro y generar problemas al cargar activos.

Para eliminar el contenido mixto del sitio, asegúrese de que todos los recursos se ofrezcan mediante HTTPS; para ello, cambie http:// por https:// en el código HTML del sitio.

Normalmente, los activos se encuentran en las siguientes ubicaciones:

  • Si en el sitio se usa Jekyll, es probable que los archivos HTML se encuentren en la carpeta _layouts.
  • CSS se encuentra normalmente en la sección <head> del archivo HTML.
  • JavaScript normalmente se encuentra en la sección <head> o justo antes de la etiqueta </body> de cierre.
  • Las imágenes normalmente se encuentran en la sección <body>.

Sugerencia

Si no puedes encontrar tus recursos en los archivos de origen de tu sitio, intenta buscar http:// en los archivos de origen de tu sitio con tu editor de texto o en GitHub.

Ejemplos de activos referenciados en un archivo HTML

Tipo de recursoHTTPHTTPS
CSS<link rel="stylesheet" href="http://example.com/css/main.css"><link rel="stylesheet" href="https://example.com/css/main.css">
JavaScript<script type="text/javascript" src="http://example.com/js/main.js"></script><script type="text/javascript" src="https://example.com/js/main.js"></script>
Imagen<a href="http://www.somesite.com"><img src="http://www.example.com/logo.jpg" alt="Logo"></a><a href="https://www.somesite.com"><img src="https://www.example.com/logo.jpg" alt="Logo"></a>

Verificación de la configuración de DNS

En algunos casos, no se podrá generar un certificado HTTPS debido a la configuración dns del dominio personalizado. Esto puede deberse a registros DNS adicionales o registros que no apuntan a las direcciones IP de GitHub Pages.

Para asegurarse de que un certificado HTTPS se genera correctamente, se recomiendan las siguientes configuraciones. Cualquier registro adicional de tipo A, AAAA, ALIAS o ANAME con el host @, o registros CNAME que apunten a su subdominio www o a cualquier otro subdominio personalizado que desee usar con GitHub Pages, puede impedir que se genere el certificado HTTPS.

EscenarioTipo de registros DNSNombre del registro DNSValores del registro DNS
Dominio de Apex
(example.com)
A@185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Dominio de Apex
(example.com)
AAAA@2606:50c0:8000::153
2606:50c0:8001::153
2606:50c0:8002::153
2606:50c0:8003::153
Dominio de Apex
(example.com)
ALIAS o ANAME@
USERNAME.github.io o
ORGANIZATION.github.io
Subdominio
(www.example.com,
blog.example.com)CNAMESUBDOMAIN.example.com.
USERNAME.github.io o
ORGANIZATION.github.io