Informática y Software Práctico

Activar SSL en XAMPP: por qué tu localhost sigue en HTTP

Post actualizado el día octubre 29, 2026 by DeiviSanzPlay

Si has intentado activar SSL en XAMPP y sigues viendo el candado roto o el aviso de «conexión no segura» en localhost, no estás solo. XAMPP trae Apache con SSL compilado, pero viene desactivado por defecto y el certificado que genera es autofirmado, lo que provoca que Chrome y Firefox lo rechacen sin miramientos. Ese es el 90% de los casos que llegan buscando cómo activar SSL en XAMPP y se topan con un muro.

La clave está en entender que activar SSL en XAMPP no consiste en «instalar algo», sino en descomentar dos líneas en httpd.conf, generar un certificado válido para tu equipo y aceptar manualmente la excepción en el navegador. Ni más, ni menos.

Dónde está realmente el interruptor de SSL en XAMPP

Abre el panel de control de XAMPP y mira el botón Config junto a Apache. Ahí tienes dos archivos: httpd.conf y httpd-ssl.conf. El módulo SSL se activa quitando la almohadilla de la línea LoadModule ssl_module modules/mod_ssl.so dentro de httpd.conf. Sin ese paso, Apache arranca en HTTP aunque tengas el puerto 443 escuchando.

Mucha gente activa SSL en XAMPP editando httpd-ssl.conf pero olvida el LoadModule. Resultado: Apache no arranca o lo hace sin SSL y el navegador sigue mostrando http://localhost. Revisa el log error.log antes de tocar nada más.

El certificado autofirmado: el origen del error NET::ERR_CERT_AUTHORITY_INVALID

XAMPP incluye un certificado de ejemplo en xamppapacheconfssl.crtserver.crt y su clave en ssl.keyserver.key. Funciona, pero está emitido a nombre de «localhost» y sin una CA reconocida. Al activar SSL en XAMPP, Chrome lanzará ese error de autoridad inválida. No es un fallo tuyo: es el comportamiento esperado con certificados autofirmados.

La solución rápida es pulsar «Avanzado» y «Continuar a localhost». La solución limpia pasa por generar tu propio certificado con mkcert o con OpenSSL y añadirlo como CA de confianza en el sistema. Con mkcert localhost 127.0.0.1 ::1 obtienes un certificado que el navegador acepta sin excepciones, y lo colocas en las mismas rutas que XAMPP espera.

Qué NO resuelve activar SSL en XAMPP

Esto es importante: activar SSL en XAMPP no protege tu sitio frente a ataques reales ni cifra tráfico fuera de tu red local. El certificado solo es válido para localhost y, como mucho, para tu IP en la LAN. Si compartes el proyecto con un compañero o lo pruebas desde el móvil, verá advertencias distintas.

Tampoco funciona si tu hosting o framework fuerza HTTPS con HSTS estricto, porque el navegador se negará a aceptar el certificado autofirmado aunque tú lo hayas autorizado antes. En ese caso, mejor trabaja con un dominio de pruebas y mkcert desde el principio.

Caso real: cuando el virtual host rompe el SSL

Hace poco monté un proyecto Laravel en XAMPP con un virtual host miapp.test. Activé SSL, configuré httpd-vhosts.conf apuntando al puerto 443 y, aun así, seguía entrando por HTTP. El problema: el bloque <VirtualHost *:443> estaba después de otro bloque que capturaba todo el tráfico. El orden importa, y activar SSL en XAMPP con virtual hosts mal ordenados es una fuente clásica de dolores de cabeza.

Revisa que cada virtual host con SSL tenga su propio SSLCertificateFile y SSLCertificateKeyFile, y que el DocumentRoot sea idéntico al del puerto 80. Si no, tendrás dos sitios distintos según el protocolo.

Alternativas si XAMPP se queda corto

Si tu objetivo es probar integraciones que exigen HTTPS real (por ejemplo, webhooks de pago o la API de notificaciones push), activar SSL en XAMPP con el certificado autofirmado no basta. Muchos servicios externos rechazan conexiones a certificados no válidos. Ahí conviene saltar a mkcert combinado con un dominio local, o directamente usar herramientas como Laravel Valet, DDEV o Docker con Traefik, que gestionan certificados locales sin que toques Apache.

Mi recomendación: usa XAMPP para lo que está pensado (entorno rápido de pruebas) y no le pidas que sea un servidor de producción. Activar SSL en XAMPP es útil para probar redirecciones, cookies Secure y cabeceras HSTS en local, pero nada más allá.

Checklist mínimo antes de dar por hecho que funciona

Después de activar SSL en XAMPP, comprueba tres cosas: que Apache arranca sin errores, que https://localhost responde (aunque sea con advertencia) y que el puerto 443 está realmente escuchando con netstat -ano | findstr :443. Si algo falla, el log apache/error.log te dirá exactamente qué línea del httpd-ssl.conf está mal.

Y un último detalle que casi nadie menciona: si usas antivirus con escaneo HTTPS (Kaspersky, ESET), puede interceptar el tráfico y romper el certificado local aunque esté bien configurado. Desactiva la inspección SSL temporalmente para esa carpeta y verás la diferencia.


Sobre el autor: DeiviSanzPlay — Soy David Sanz, Editor y Responsable de Contenidos. Mi trabajo consiste en revisar, corregir y mejorar los contenidos de este blog para que la información sea clara, útil y esté bien estructurada. Trabajo con diferentes temáticas y verticales, por lo que una parte importante de mi día a día es analizar cada contenido, cuidar la redacción y asegurar que el lector encuentre información de calidad. Me gusta prestar atención a los detalles. Desde una corrección de estilo hasta la organización de un artículo, todo cuenta cuando se trata de crear contenidos que realmente aporten valor y sean fáciles de entender. En este blog encontrarás artículos sobre diferentes temas y sectores. Mi responsabilidad es cuidar y supervisar cada contenido para que mantenga unos estándares de calidad y ofrezca una buena experiencia a quien nos visita. Porque para mí, un buen contenido no consiste únicamente en escribir. También hay que revisar, contrastar, ordenar y pensar en la persona que está al otro lado de la pantalla.

Perfiles verificables: Sitio web

Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.