Despliegue de Azure CLI

Guía rápida para desplegar PKI Trust Manager en Azure Container Instances con Azure SQL Database.

🚀 Guía rápida de despliegue#

Despliegue PKI Trust Manager en Azure Container Instances usando su Azure SQL Database existente.

Lista de requisitos previos#

  • ✅ Suscripción de Azure con acceso de colaborador
  • ✅ Azure SQL Database ya aprovisionada
  • ✅ Cadena de conexión SQL preparada (servidor, base de datos y credenciales)
  • ✅ Azure CLI instalado (compruebe con az --version)

📋 Despliegue paso a paso#

1. Iniciar sesión en Azure#

az login

2. Crear un grupo de recursos (si hace falta)#

az group create \
  --name pki-trust-manager-rg \
  --location eastus

3. Desplegar el contenedor PKI Trust Manager#

# Replace placeholders with your actual values
az container create \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --image securetron.azurecr.io/pkimain:latest \
  --cpu 2 \
  --memory 4 \
  --ports 5228 \
  --dns-name-label pki-trust-manager-$(date +%s) \
  --environment-variables \
    ASPNETCORE_ENVIRONMENT=Production \
    ConnectionStrings__OurDBContext="Server=YOUR_SQL_SERVER.database.windows.net;Database=YOUR_DATABASE_NAME;User Id=YOUR_USERNAME;Password=YOUR_PASSWORD;MultipleActiveResultSets=true;TrustServerCertificate=True;" \
    Environment__Mode=Cloud \
    Authentication__DefaultSuperAdminUsername=superadmin \
    Authentication__DefaultSuperAdminPassword="ChangeThisPassword123!" \
    [email protected] \
    Smtp__Server="mail.smtp2go.com" \
    Smtp__Port=2525 \
    Smtp__Auth=true \
    Smtp__EnableSsl=true \
    Smtp__Username="your-smtp-username" \
    Smtp__Password="your-smtp-password" \
    Licensing__OfflineMode=true \
  --restart-policy Always

4. Obtener la URL de la aplicación#

az container show \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --query "ipAddress.fqdn" \
  --output tsv

🔧 Configuración mínima necesaria#

Sustituya estos valores en el comando anterior:

1. Conexión a SQL Database#

# Your Azure SQL details:
Server=YOUR_SQL_SERVER.database.windows.net
Database=YOUR_DATABASE_NAME
User Id=YOUR_USERNAME
Password=YOUR_PASSWORD

2. Credenciales de administrador#

Authentication__DefaultSuperAdminUsername=superadmin
Authentication__DefaultSuperAdminPassword="YourSecurePasswordHere"

3. Configuración SMTP (opcional, pero recomendada)#

Smtp__Server="your-smtp-server.com"
Smtp__Username="your-username"
Smtp__Password="your-password"

🎯 Script de despliegue de una línea#

Guarde este archivo como deploy-pki.sh:

#!/bin/bash
 
# Set your variables here
RESOURCE_GROUP="pki-trust-manager-rg"
LOCATION="eastus"
SQL_SERVER="your-sql-server.database.windows.net"
SQL_DATABASE="PKIDBEE"
SQL_USER="your-sql-username"
SQL_PASSWORD="your-sql-password"
ADMIN_PASSWORD="YourAdminPassword123!"
 
# Run deployment
az container create \
  --resource-group $RESOURCE_GROUP \
  --name pki-trust-manager \
  --image securetron.azurecr.io/pkimain:latest \
  --cpu 2 --memory 4 --ports 5228 \
  --dns-name-label pki-trust-manager-$(date +%s) \
  --environment-variables \
    ConnectionStrings__OurDBContext="Server=$SQL_SERVER;Database=$SQL_DATABASE;User Id=$SQL_USER;Password=$SQL_PASSWORD;MultipleActiveResultSets=true;TrustServerCertificate=True;" \
    Authentication__DefaultSuperAdminUsername=superadmin \
    Authentication__DefaultSuperAdminPassword="$ADMIN_PASSWORD" \
    [email protected] \
    Licensing__OfflineMode=true \
  --restart-policy Always
 
# Get the URL
echo "Your PKI Trust Manager is deployed at:"
az container show \
  --resource-group $RESOURCE_GROUP \
  --name pki-trust-manager \
  --query "ipAddress.fqdn" \
  --output tsv

Haga que el script sea ejecutable y ejecútelo:

chmod +x deploy-pki.sh
./deploy-pki.sh

✅ Pasos de verificación#

1. Comprobar el estado del despliegue#

az container show \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --query "provisioningState"

2. Ver los registros del contenedor#

az container logs \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager

3. Probar la aplicación#

# Get the FQDN
URL=$(az container show \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --query "ipAddress.fqdn" \
  --output tsv)
 
# Test connection
curl http://$URL:5228/health

🐛 Solución de problemas comunes#

Problema 1: "Image pull failed"#

# Check if you can pull the image
docker pull securetron.azurecr.io/pkimain:latest

Problema 2: "Cannot connect to database"#

# Test SQL connectivity
az container exec \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --exec-command "ping YOUR_SQL_SERVER.database.windows.net"
 
# Check SQL firewall allows Azure services
# In Azure Portal: SQL Server → Firewalls and virtual networks → Allow Azure services = ON

Problema 3: el contenedor se reinicia continuamente#

# Check detailed logs
az container logs \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --follow

📊 Configuración posterior al despliegue#

1. Acceder a la aplicación#

  1. Vaya a: http://YOUR_FQDN:5228
  2. Inicie sesión con:
    • Username: superadmin
    • Password: [Your set password]

2. Configuración inicial#

  1. Cambie la contraseña predeterminada del administrador.
  2. Configure los ajustes de la organización.
  3. Configure las autoridades de certificación.
  4. Configure las notificaciones por correo electrónico.

3. Habilitar HTTPS (opcional, pero recomendado)#

# Create an Application Gateway or use Azure Front Door
# This requires SSL certificates

🗑️ Limpiar#

Elimine el despliegue cuando ya no lo necesite:

az container delete \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --yes

📞 ¿Necesita ayuda?#

Soporte rápido#

  1. Consultar registros: az container logs -g pki-trust-manager-rg -n pki-trust-manager
  2. Verificar SQL: pruebe la conectividad desde Azure Portal.
  3. Comprobar estado del contenedor: az container show -g pki-trust-manager-rg -n pki-trust-manager

Contactar con Securetron#


Tiempo de despliegue: ~5 minutos
Coste estimado: ~$20-100/mes (Container + SQL)
Mantenimiento: automático con Azure Container Instances