Obtención de certificados SSL (instalación local)#
Sherpa Orchestrator soporta conexiones HTTPS para asegurar la comunicación. En esta guía se describen las formas de obtener certificados SSL para su uso en el sistema.
Recomendaciones para la obtención de certificados#
Importante: Antes de obtener certificados, consulte con el administrador de su red interna o con el centro de certificación de su empresa. Los certificados corporativos suelen ser proporcionados por el departamento de TI y aseguran una mejor integración con la infraestructura de seguridad existente.
Si los certificados corporativos no están disponibles, considere las siguientes opciones para obtener certificados para dominios externos en las siguientes secciones.
Obtención de certificados corporativos#
Si su organización tiene un centro de certificación (CA) interno, consulte con el administrador del sistema para obtener certificados. Indique el dominio para los certificados y obtenga 2 archivos: el certificado (.crt) y la clave privada (.key). Después de recibirlos, instálelos de la siguiente manera:
# Cree un directorio para los certificados
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/
# Copie los certificados (renombre los archivos según lo recibido)
sudo cp your_certificate.crt /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo cp your_private.key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
# Establezca los permisos correctos
sudo chmod 644 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo chmod 600 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
💡 Comentarios sobre la obtención de certificados corporativos
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/ - crea un directorio para los certificados
-p- crea directorios padres si es necesario
sudo cp your_certificate.crt /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt - copia el certificado sudo cp your_private.key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key - copia la clave privada
chmod 644 - establece permisos de lectura para los certificados (el propietario puede escribir, todos pueden leer) chmod 600 - establece permisos solo para el propietario en las claves privadas
Obtención de certificados de confianza a través de Let's Encrypt#
Para obtener certificados de confianza gratuitos de Let's Encrypt, use Certbot en una máquina con acceso a Internet.
Instalación de Certbot#
# En Debian/Ubuntu
sudo apt update
sudo apt install certbot
# En CentOS/RHEL
sudo yum install certbot
# En macOS (con Homebrew)
brew install certbot
💡 Comentarios sobre la instalación de Certbot
Ubuntu/Debian:
sudo apt update- actualiza la lista de paquetessudo apt install certbot- instala Certbot
CentOS/RHEL:
sudo yum install certbot- instala Certbot a través de yum
macOS:
brew install certbot- instala Certbot a través de Homebrew
Obtención de un certificado para el dominio#
# Obtenga un certificado para su dominio (reemplazar yourdomain.com por su dominio)
sudo certbot certonly --standalone -d yourdomain.com
# O para un certificado wildcard (requiere desafío DNS)
sudo certbot certonly --manual --preferred-challenges=dns -d yourdomain.com -d *.yourdomain.com
💡 Comentarios sobre la obtención del certificado
sudo certbot certonly --standalone -d yourdomain.com - obtiene un certificado para el dominio
certonly- obtiene solo los certificados, sin configurar el servidor web--standalone- inicia un servidor web temporal para el desafío HTTP-01-d yourdomain.com- especifica el dominio para el certificado
*sudo certbot certonly --manual --preferred-challenges=dns -d yourdomain.com -d .yourdomain.com - obtiene un certificado wildcard
--manual- modo manual (requiere un registro DNS)--preferred-challenges=dns- utiliza el desafío DNS-01-d *.yourdomain.com- dominio wildcard
Ubicación de los certificados obtenidos#
Después de obtener los certificados con éxito, estarán en el directorio /etc/letsencrypt/live/yourdomain.com/:
# Verifique el contenido del directorio con los certificados
sudo ls -la /etc/letsencrypt/live/yourdomain.com/
# La salida debe contener:
# cert.pem (certificado)
# chain.pem (cadena de certificados)
# fullchain.pem (cadena completa)
# privkey.pem (clave privada)
💡 Comentarios sobre la ubicación de los certificados
sudo ls -la /etc/letsencrypt/live/yourdomain.com/ - muestra el contenido del directorio con los certificados
/etc/letsencrypt/live/- directorio estándar de Let's Encryptyourdomain.com/- subdirectorio para el dominio
Archivos de certificados:
cert.pem- certificado del dominiochain.pem- cadena de certificados intermediosfullchain.pem- certificado completo con cadenaprivkey.pem- clave privada
Transferencia de certificados al servidor Sherpa#
Copie los certificados al servidor donde está instalado Sherpa Orchestrator:
# Cree un directorio para los certificados en el servidor Sherpa
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/
# Copie los certificados (reemplazar yourdomain.com por su dominio)
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
# Establezca los permisos correctos
sudo chmod 644 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo chmod 600 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
💡 Comentarios sobre la transferencia de certificados
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt - copia el certificado
scp- copia segurafullchain.pem- certificado completo con cadena- Se renombra a
orchestrator.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.key - copia la clave privada
privkey.pem- clave privada- Se renombra a
orchestrator.key
Creación de certificados autofirmados (para pruebas)#
ATENCIÓN: Los certificados autofirmados no son de confianza y generarán advertencias de seguridad en los navegadores. ¡Utilice este método solo para pruebas o en redes aisladas!
Creación de un certificado autofirmado con OpenSSL#
# Cree un directorio para los certificados
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/
# Genere una clave privada
sudo openssl genrsa -out /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key 2048
# Cree un certificado autofirmado
sudo openssl req -new -x509 -key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key -out /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -days 365 -subj "/C=RU/ST=State/L=City/O=Organization/CN=orchestrator.yourdomain.com"
# Establezca los permisos correctos
sudo chmod 644 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo chmod 600 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
💡 Comentarios sobre la creación de certificados autofirmados
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/ - crea un directorio para los certificados
sudo openssl genrsa -out /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key 2048 - genera una clave privada
genrsa- generación de clave RSA-out file.key- archivo de salida2048- longitud de la clave en bits
sudo openssl req -new -x509 -key keyfile.key -out certfile.crt -days 365 -subj "/C=RU/..." - crea un certificado autofirmado
req -new -x509- crea un nuevo certificado autofirmado-key keyfile.key- utiliza la clave privada especificada*-out certfile.crt- archivo de salida del certificado-days 365- duración (1 año)-subj "/C=RU/ST=State/L=City/O=Organization/CN=domain.com"- información del sujeto
chmod 644 y chmod 600 - establecen los permisos de acceso correctos
Verificación de certificados creados#
# Verifique la información del certificado
sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -text -noout
# Verifique la correspondencia entre la clave y el certificado
sudo openssl rsa -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key -check
# Verifique la fecha de caducidad del certificado
sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -enddate -noout
💡 Comentarios sobre la verificación de certificados
sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -text -noout - muestra información sobre el certificado
x509- comando para trabajar con certificados X.509-in file.crt- archivo de entrada del certificado-text- muestra información en texto-noout- no muestra el certificado codificado
sudo openssl rsa -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key -check - verifica la clave privada
rsa- comando para trabajar con claves RSA-in file.key- archivo de entrada de la clave-check- verifica la validez de la clave
sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -enddate -noout - muestra la fecha de caducidad del certificado
Configuración de TLS para el protocolo LDAPS (punto opcional)#
Importante: Si no se requiere soporte para LDAPS, omita este punto.
Copie el certificado rootCA llamado ca-certificates.crt en el directorio /opt/SherpaOrchestrator/backend/config/certs/
Configuración de certificados para el servidor IMAP (punto opcional)#
Importante: Si no planea usar disparadores activados por correo electrónico o su servidor de correo no requiere certificados, omita este punto.
Copie los certificados para imap en la carpeta /opt/SherpaOrchestrator/backend/config/certs/imap_certs
Activación de certificados#
Después de instalar los certificados, es necesario reiniciar Nginx:
# Verifique la sintaxis de la configuración
sudo nginx -t
# Reinicie Nginx
sudo systemctl restart nginx
# Verifique el estado
sudo systemctl status nginx
Verificación de la conexión HTTPS#
# Verifique la disponibilidad de HTTPS
curl -I https://your-domain-or-ip
# Verifique el certificado
openssl s_client -connect your-domain-or-ip:443 -servername your-domain-or-ip < /dev/null 2>/dev/null | openssl x509 -noout -dates
Actualización automática de certificados Let's Encrypt#
Para la actualización automática de certificados Let's Encrypt, configure cron:
# Abra crontab
sudo crontab -e
# Agregue la tarea de actualización (se ejecuta 2 veces al día a una hora aleatoria)
0 */12 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx
💡 Comentarios sobre la actualización automática
certbot renew --quiet - actualiza todos los certificados cuyo plazo de validez expira en menos de 30 días
--quiet- suprime la salida excepto para errores
systemctl reload nginx - recarga la configuración de Nginx después de actualizar los certificados
La tarea se ejecuta 2 veces al día para asegurar una actualización oportuna.
Recomendaciones de seguridad#
- Siempre use certificados de confianza para entornos de producción
- Actualice regularmente los certificados antes de que caduquen
- Almacene las claves privadas en un lugar seguro con permisos de acceso restringidos
- Monitoree la fecha de caducidad de los certificados y configure alertas
- Utilice suites de cifrado fuertes en la configuración del servidor
- Configure HSTS (HTTP Strict Transport Security) para forzar HTTPS
Solución de problemas#
Problema: "falló la verificación del certificado ssl"#
Solución:
- Verifique la correcta instalación de los certificados
- Asegúrese de que los permisos de acceso a los archivos de certificados sean correctos
- Verifique la ruta a los certificados en la configuración de Nginx
Problema: "cadena incompleta" o "no se puede obtener el certificado emisor local"#
Solución:
- Use
fullchain.pemen lugar decert.pempara el certificado - Asegúrese de que el archivo de la cadena de certificados esté presente y sea correcto
Problema: "fallo en el apretón de manos ssl"#
Solución:
- Verifique la compatibilidad de las suites de cifrado
- Asegúrese de que la clave privada corresponda al certificado
- Verifique los registros de Nginx en busca de errores
Después de obtener y configurar los certificados de cualquiera de las maneras descritas, el sistema Sherpa Orchestrator estará disponible a través de HTTPS.