Desarrollo HTTPS local con certificados SSL autofirmados
Durante el desarrollo y las pruebas web locales, simular una conexión HTTPS como en producción es fundamental. Aunque los certificados SSL autofirmados no son reconocidos por las autoridades certificadoras (CA) públicas, ofrecen una forma sencilla de implementar HTTPS en entornos de desarrollo local. En este artículo, te mostraremos paso a paso cómo generar de manera eficiente y segura un certificado SSL ECC autofirmado usando la herramienta OpenSSL integrada en ServBay, y cómo configurarlo para tus sitios web locales en ServBay. Utilizaremos servbay.demo
como dominio de ejemplo.
Saber cómo configurar HTTPS te permite probar completamente el comportamiento de tu sitio bajo conexiones seguras en el entorno local, incluyendo la gestión de advertencias sobre contenido mixto, banderas de seguridad de cookies y más.
Resumen
Un certificado autofirmado es un certificado SSL que creas y firmas tú mismo, en lugar de obtenerlo de una CA confiable de terceros. Son útiles en situaciones donde la confianza pública no es requerida, como:
- Entornos de desarrollo local
- Servidores internos de pruebas
- Aplicaciones internas para datos no sensibles
ServBay integra la herramienta OpenSSL, facilitando la generación de archivos de certificado directamente desde la terminal.
Requisitos previos
- Tener ServBay instalado y en funcionamiento.
- Conocimientos básicos de manejo de la terminal/comandos.
Paso 1: Generar un certificado SSL ECC autofirmado
Recomendamos utilizar certificados ECC, ya que, en comparación con los certificados RSA tradicionales, ofrecen igual nivel de seguridad con claves más pequeñas, firmas y verificaciones más rápidas, y menor consumo de recursos.
Sigue estos pasos para generar el certificado SSL ECC autofirmado:
Generar la clave privada ECC (Private Key)
Abre tu terminal y ejecuta el siguiente comando para generar una clave privada ECC usando la curva
prime256v1
, guardándola comoservbay.demo.key
.shopenssl ecparam -genkey -name prime256v1 -out servbay.demo.key
1openssl
: Ejecuta la herramienta OpenSSL.ecparam
: Gestiona los parámetros ECC.-genkey
: Genera la clave.-name prime256v1
: Indica la curva ECC a usar;prime256v1
(NIST P-256) es una opción común y segura.-out servbay.demo.key
: Especifica el nombre de archivo de la clave privada generada.
Generar la solicitud de firma de certificado (CSR)
Usando la clave privada generada, crea una solicitud de firma de certificado (CSR) llamada
servbay.demo.csr
. Este archivo incluye la información que deseas en el certificado (dominio, organización, etc.) y está firmado por tu clave privada.shopenssl req -new -key servbay.demo.key -out servbay.demo.csr
1Al ejecutar este comando, OpenSSL te pedirá que completes una serie de datos para la CSR. Rellena los campos según las indicaciones. El campo más importante es
Common Name (e.g. server FQDN or YOUR name)
, donde debes ingresar el dominio local de tu sitio, por ejemplo,servbay.demo
. El resto puedes completarlo según tu contexto o seguir el ejemplo.Ejemplo de entrada:
Country Name (2 letter code) [AU]:CN # Código de país, por ejemplo CN (China) State or Province Name (full name) [Some-State]:Hong Kong # Provincia o estado Locality Name (eg, city) []:Kowloon # Ciudad Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # Nombre de la organización Organizational Unit Name (eg, section) []:Development # Unidad organizativa Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **Importante: tu dominio local** Email Address []:[email protected] # Correo de contacto Please enter the following 'extra' attributes to be sent on in your certificate request A challenge password []: # Opcional, puedes dejarlo en blanco An optional company name []: # Opcional, puedes dejarlo en blanco
1
2
3
4
5
6
7
8
9
10
11Generar el certificado autofirmado
Por último, usa la CSR (
servbay.demo.csr
) y la clave privada (servbay.demo.key
) para crear el certificado SSL autofirmadoservbay.demo.crt
. Fijaremos el periodo de validez a 365 días.shopenssl x509 -req -days 365 -in servbay.demo.csr -signkey servbay.demo.key -out servbay.demo.crt
1openssl x509
: Gestiona certificados en formato X.509.-req
: Indica que la entrada es una CSR.-days 365
: Validez del certificado en días.-in servbay.demo.csr
: Archivo CSR de entrada.-signkey servbay.demo.key
: Firma el certificado con la clave privada (autofirmado).-out servbay.demo.crt
: Nombre de archivo del certificado generado.
Tras completar estos pasos, tendrás tres archivos en el directorio actual:
servbay.demo.key
(clave privada),servbay.demo.csr
(solicitud de firma) yservbay.demo.crt
(certificado autofirmado).
(Imagen ilustrativa: proceso de generación de certificados desde la terminal con OpenSSL)
Paso 2: Configurar el certificado SSL autofirmado en ServBay
Tras generar los archivos del certificado, colócalos en una ubicación accesible para ServBay y especifícalos en la configuración de tu sitio web desde la interfaz de ServBay. Se recomienda usar /Applications/ServBay/ssl
como directorio principal para los certificados, con subcarpetas separadas por dominio para mejor organización.
Mover los archivos a la carpeta correspondiente
Según la estructura recomendada por ServBay, mueve los archivos al directorio
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/
. Si el directorio no existe, créalo primero.sh# Crea el directorio si no existe mkdir -p /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ # Mueve los archivos mv servbay.demo.key /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ mv servbay.demo.crt /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ # El archivo CSR generalmente no es necesario, pero puedes moverlo por respaldo o referencia mv servbay.demo.csr /Applications/ServBay/ssl/private/tls-certs/servbay.demo/
1
2
3
4
5
6
7
8/Applications/ServBay/ssl/
: Carpeta raíz por defecto de archivos SSL en ServBay.private/tls-certs/
: Subcarpeta sugerida para certificados TLS/SSL privados.servbay.demo/
: Un subdirectorio para cada dominio ayuda a administrar múltiples sitios.
Abrir la interfaz de administración de ServBay
Inicia la aplicación ServBay y accede a su panel de control.
Agregar o editar la configuración del sitio web
En la interfaz de administración de ServBay, ve a la pestaña Sitios Web (Websites). Si aún no tienes un sitio para
servbay.demo
, haz clic en Agregar sitio (Add Website). Si ya existe, selecciona la configuración del sitio para editarla.Configurar SSL/HTTPS
Dentro de los detalles de configuración del sitio, busca la sección SSL/HTTPS o similar.
Seleccionar la fuente del certificado como Custom
En el tipo o método de emisión de certificado SSL, elige Custom (certificado personalizado).
Especificar la ruta de los archivos del certificado
Completa los campos correspondientes utilizando las rutas en donde ubicaron los archivos en el directorio SSL de ServBay:
- Certificate Key File (clave privada): Ingresa o navega hasta
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/servbay.demo.key
- Certificate File (certificado): Ingresa o navega hasta
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/servbay.demo.crt
- Certificate Key File (clave privada): Ingresa o navega hasta
Establecer el dominio
Verifica que el campo Domain (dominio) esté configurado como
servbay.demo
.Guardar y aplicar la configuración
Guarda los cambios realizados. ServBay solicitará aplicar la nueva configuración, lo que normalmente implica reiniciar el servidor web (como Caddy o Nginx). Confirma para aplicar los cambios.
(Imagen ilustrativa: especificando la ruta de certificados personalizados en la interfaz de administración de ServBay)
Verificar la configuración HTTPS
Cuando hayas terminado la configuración en ServBay, abre tu navegador y accede a https://servbay.demo/
para comprobar que todo funcione.
Dado que el certificado es autofirmado y no ha sido emitido por una CA pública reconocida por tu sistema operativo o navegador, verás una advertencia de seguridad indicando que el certificado no es de confianza o representa un riesgo de privacidad. Esto es completamente normal.
(Imagen ilustrativa: advertencia del navegador al acceder a un sitio con certificado autofirmado)
Puedes optar por ignorar la advertencia y continuar (normalmente existe una opción “Avanzado” o “Continuar de todas formas”), o bien, para evitar ver estas alertas cada vez, puedes añadir el certificado a la lista de confianza de tu sistema operativo.
(Imagen ilustrativa: visualizando los detalles del certificado autofirmado en el navegador)
Al revisar los detalles del certificado, verifica que el navegador esté cargando, efectivamente, tu certificado servbay.demo
.
Consideraciones importantes
- Seguridad de la clave privada: El archivo de clave privada (
.key
) es altamente sensible, guárdalo con precaución y no lo compartas. En entornos de desarrollo, asegúrate de que los permisos de archivo solo permitan el acceso al usuario de ServBay. - Ruta del archivo: Confirma que las rutas de los certificados especificadas en ServBay sean correctas y completas.
- Coincidencia de dominio: El dominio introducido en el campo Common Name (CN) del certificado debe coincidir exactamente con el configurado en ServBay, o el navegador emitirá un error de incompatibilidad de dominio.
- Validez del certificado: La vigencia del certificado autofirmado depende del parámetro
-days
especificado al generarlo. Cuando expire, tendrás que generar y configurar uno nuevo.
Temas relacionados y alternativas
Aunque los certificados autofirmados son adecuados para pruebas HTTPS básicas en local, si deseas una experiencia más cercana a la confianza de CA públicas en tu entorno de desarrollo, ServBay ofrece otras opciones:
- ServBay User CA: ServBay incorpora una CA de usuario. Puedes añadir esta CA al almacén de confianza de tu sistema operativo y luego emitir desde ella certificados para tus sitios locales. Estos certificados serán automáticamente reconocidos y de confianza en tu sistema y navegador, evitando advertencias. Esto es especialmente útil para probar callbacks OAuth, Webhooks o cualquier escenario que requiera certificados confiables.
- ServBay Public CA: ServBay también dispone de una función de CA pública para emitir certificados a dominios locales y configurar la confianza del sistema automáticamente.
Estas alternativas son normalmente más cómodas que gestionar manualmente los certificados autofirmados, sobre todo si manejas múltiples sitios locales. Consulta la documentación de ServBay para más detalles sobre el uso de estas funciones.
Preguntas frecuentes (FAQ)
- ¿Por qué, aunque genere el certificado, el navegador sigue diciendo que el sitio no es seguro?
- Respuesta: Los certificados autofirmados no son confiables para las CA públicas, por lo que el navegador advierte por motivos de seguridad. Es perfectamente normal. Para evitar la advertencia, agrega el certificado o la CA que lo firmó (por ejemplo, con ServBay User CA) al almacén de confianza de tu sistema operativo.
- ¿Puedo utilizar certificados RSA?
- Respuesta: Sí. OpenSSL también soporta certificados RSA. Puedes generar una clave RSA con
openssl genrsa -out servbay.demo.key 2048
y después seguir los pasos para CSR y generación del certificado. Sin embargo, recomendamos ECC por su mayor eficiencia.
- Respuesta: Sí. OpenSSL también soporta certificados RSA. Puedes generar una clave RSA con
- ¿Cómo agrego un certificado autofirmado al almacén de confianza de macOS?
- Respuesta: Abre la aplicación “Acceso a Llaveros” (Keychain Access), selecciona el llavero “Sistema” o “Inicio de sesión”. Arrastra el archivo
.crt
al llavero. Haz doble clic en el certificado importado, expande la sección “Confianza” y establece “Al usar este certificado” y “Capa de sockets seguros (SSL)” en “Confiar siempre”. Cierra la ventana e introduce la contraseña si se solicita. Reinicia el navegador.
- Respuesta: Abre la aplicación “Acceso a Llaveros” (Keychain Access), selecciona el llavero “Sistema” o “Inicio de sesión”. Arrastra el archivo
Resumen
En este artículo has aprendido cómo generar un certificado ECC SSL autofirmado usando la herramienta OpenSSL integrada en ServBay y cómo configurarlo en tu sitio web local a través de ServBay. Si bien los certificados autofirmados son principalmente útiles para el desarrollo y pruebas locales, son un paso clave para comprender el funcionamiento de HTTPS y activar conexiones seguras en tu entorno. Para una gestión más cómoda de la confianza en local, recomendamos explorar las funciones de User CA y Public CA que ofrece ServBay. Esperamos que este tutorial te ayude a mejorar tu proceso de desarrollo web local.