Microsoft Tunnel Gateway permite a las organizaciones extender acceso VPN seguro a dispositivos móviles gestionados desde Intune, integrando con redes corporativas on-premises. Como parte crítica de esta arquitectura, el túnel utiliza un certificado TLS para cifrar el tráfico.
Este certificado no se renueva automáticamente si fue emitido por una Autoridad Certificadora (CA) interna, por lo que su renovación manual se convierte en una tarea esencial para mantener la conectividad.
En este artículo te mostraré cómo renovar el certificado TLS de un servidor Microsoft Tunnel en Linux, usando OpenSSL, una CA interna en Windows Server y herramientas como podman, con validación completa desde el portal de Intune.

🧱 Requisitos previos
- Servidor Microsoft Tunnel Gateway corriendo en Linux (contenedorizado)
- Acceso por SSH al servidor
- Acceso al portal de Intune
- Una Autoridad Certificadora local en Windows Server (con rol Web Enrollment instalado)
- Nombre del túnel (FQDN), por ejemplo:
tunnel2025.azurevirtualdesktop.mx
🧾 Paso 1: Generar CSR y clave privada en Linux
openssl req -new -newkey rsa:2048 -nodes \
-keyout tls.key \
-out tls.csr \
-subj "/CN=tunnel2025.azurevirtualdesktop.mx" \
-addext "subjectAltName = DNS:tunnel2025.azurevirtualdesktop.mx"
Este comando genera tls.key (clave privada) y tls.csr (solicitud de certificado).
🧾 Paso 2: Solicitar certificado en la CA interna
- Abre en tu navegador:
http://<nombre_servidor_CA>/certsrv - Ve a:
Request a certificate > advanced certificate request > Submit a certificate request using a base64-encoded PKCS#10 file - Pega el contenido de
tls.csr - Selecciona la plantilla:
Web Server - Descarga el certificado en formato Base64 (
certnew.cer)
📥 Paso 3: Subir y convertir el certificado en el servidor
- Copia el archivo al servidor Linux:
bashCopiarEditarscp certnew.cer usuario@ip:/home/usuario/
- Conviértelo a
.crt:
bashCopiarEditaropenssl x509 -in certnew.cer -out tls.crt
🔧 Paso 4: Reemplazar los archivos TLS en el servidor
Como root:
cp tls.key /etc/mstunnel/private/tls.key
cp tls.crt /etc/mstunnel/private/tls.crt
chmod 600 /etc/mstunnel/private/tls.*
chown root:root /etc/mstunnel/private/tls.*
🔄 Paso 5: Reiniciar el contenedor de Microsoft Tunnel
Identifica el nombre del contenedor (en este caso mstunnel-server) y reinícialo:
bashCopiarEditarpodman restart mstunnel-server
📊 Paso 6: Validar los logs del túnel
podman logs --tail 50 mstunnel-server
Busca mensajes como:
Listening (TCP) on 0.0.0.0:443...
Successfully loaded TLS certificate
🔐 Paso 7: Confirmar el nuevo certificado con OpenSSL
openssl x509 -in /etc/mstunnel/private/tls.crt -noout -subject -enddate
Ejemplo de salida:
subject=CN = tunnel2025.azurevirtualdesktop.mx
notAfter=Jul 25 06:58:29 2027 GMT
🌐 Paso 8: Confirmar desde el portal de Intune
- Ve a:
https://intune.microsoft.com - Navega a:
Tenant Administration > Microsoft Tunnel Gateway - Selecciona tu sitio (
dmx-tunnel) y verifica que:- El estado sea Healthy
- El valor de TLS certificate expiration refleje la nueva fecha de expiración
✅ Conclusión
La renovación manual de certificados TLS en Microsoft Tunnel Gateway es una tarea esencial para evitar interrupciones en la conectividad VPN corporativa.
En este artículo vimos cómo generar un nuevo certificado desde Linux, firmarlo con una CA interna y aplicarlo al contenedor del túnel de forma segura.
Automatizar la verificación de vigencia y tener alertas proactivas en Intune puede ayudarte a anticiparte antes de que estos certificados caduquen.
Resultado final de la renovación



