Introducción
Este documento describe los pasos necesarios para configurar el ZTNA para la inscripción automática basada en certificados.
Prerequisites
- Secure Client versión mínima 5.1.9.x
- Módulo de plataforma segura (TPM) para Windows
- Coprocesador Secure Enclave para dispositivos Apple
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- Windows 11 con TPM versión 2.0
- Secure Client versión 5.1.10.17 con ZTNA y módulo DUO habilitado.
- Microsoft Active Directory 2022
- Herramienta Openssl para la generación de certificados
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Habilitación de la inscripción automática en el panel de acceso seguro
El primer paso para habilitar esta función es habilitar la función de inscripción automática de Secure Access, que incluye:
1. Vaya a Panel -> Conectar -> Conectividad del usuario final -> Confianza cero
2. Haga clic en Administrar opción.

3. Active Utilizar certificados.
4. Cargue el certificado de la CA descargándolo de la autoridad de certificación local.
5. Descargue la configuración de inscripción y colóquela en los directorios basados en el sistema operativo.
-Windows: C:\ProgramData\Cisco\Cisco Secure Client\ZTA\enrollment_options
- macOS: /opt/cisco/secureclient/zta/enrollment_choices
6. Asegúrese de guardar los parámetros una vez completados.

Plantilla e instalación de certificados
Secure Access requiere estos campos de certificado obligatorios:
- Nombre alternativo del asunto (SAN) para incluir la dirección de correo electrónico de queja RFC-822 del usuario o el nombre principal del usuario (UPN)
Ejemplo:
Opción 1: Correo electrónico conforme a RFC822
email.1 = username@domain.local
Opción 2: (alternativa): UPN (específico de Microsoft)
otherName:1.3.6.1.4.1.311.20.2.3;UTF8:username@domain.local
En este ejemplo, estamos utilizando la plantilla de certificado de usuario de Microsoft AD para generar el certificado.
Paso 1: Vaya a Microsoft AD y abra el Administrador de certificados
Paso 2: Abra Ejecutar e introduzca Microsoft Management Console (mmc)

Paso 3: Haga clic en Archivo y, a continuación, en Agregar o quitar complemento
Paso 4: Agregar plantillas de certificado
Paso 5: Duplicar certificado de usuario

Paso 6: Configure los parámetros tal y como se describe
1. Nuevo nombre de la plantilla: ztna-client-enroll en la ficha (General).
2. Seleccione (Aprovisionar en la solicitud) en la pestaña (Nombre del Asunto).
Nota: Esto garantiza que se aceptan las opciones proporcionadas por la plantilla openssl, como el nombre alternativo de servicio (SAN)
Paso 7: Haga clic en Aceptar para guardar la nueva plantilla
Paso 8: Agregue la nueva plantilla a la lista de plantillas de AD haciendo lo siguiente:
1. Ejecute certsrv.msc
2. haga clic con el botón derecho del ratón en Plantillas de certificado y seleccione Nuevo -> plantilla de certificado para emitir
3. Seleccione la plantilla recién creada (ztna-client-enroll)

Creación de certificados mediante Openssl
Paso 1: Crear archivo san.cnf con contenido
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext
[ dn ]
C = US
ST = Texas
L = Austin
O = exampleusername
OU = IT
CN = exampleusername
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
# Option 1: RFC822-compliant email
email.1 = user@domain.local
# Option 2 (alternative): UPN (Microsoft-specific)
#otherName:1.3.6.1.4.1.311.20.2.3;UTF8:user@domain.local
Paso 2: crear certificado mediante la plantilla
openssl genrsa -out user.key 2048
openssl req -new -key user.key -out user.csr
openssl req -new -key user.key -out user.csr -config san.cnf
Firmar certificado de usuario con plantilla CA ZTNA
Paso 1: Copie el contenido del archivo user.csr
Paso 2: diríjase a su autoridad local de firmas de AD (https:http://<ip-address>/certsrv/)
Paso 3: Haga clic en Request a Certificate -> Advanced Certificate Request -> select ztna-client-enroll template

Paso 4: Descargue el certificado en formato Base64 e instálelo en el certificado de almacén personal de confianza del usuario.
Paso 5: Confirme que existe la información correcta en el certificado

Paso 6: Reinicie el módulo ZTNA para que se inicie la inscripción
Verificación
Use esta sección para confirmar que su configuración funciona correctamente.
Paso 1: Mensaje del módulo ZTNA al configurar el archivo de opciones de inscripción:

Paso 2: Después de reiniciar el módulo ZTNA por primera vez, puede ver que está inscrito automáticamente en ZTNA

Paso 3: Verifique que el usuario adecuado aparezca en la búsqueda de actividad en función de la información de SAN

Paso 4: Confirme que existe la información correcta en el certificado

Troubleshoot
En esta sección encontrará información que puede utilizar para solucionar problemas de configuración.
Paso 1: Confirme que existe la información correcta en el certificado y que está instalada en el almacén de certificados correcto.

Paso 2: Confirme que la inscripción no está fallando en los requisitos del certificado mediante DART
Paso 3: Confirme que puede resolver su interfaz externa FTD correctamente si se está utilizando UZTNA.
error común:
2025-06-16 05:44:45.609237 csc_zta_agent[0x00001638, 0x00000e58] T/ NetworkTransportStateTracker.cpp:110 NetworkTransportStateTracker::transitionState() transitoned state: Initialized->Connecting
2025-06-16 05:44:45.609237 csc_zta_agent[0x00001638, 0x00000e58] T/ AppSocketTransport.cpp:231 AppSocketTransport::OnNextTransportStateChange() tcp:51470__20.20.20.150 05411A30 stream=189 nextTransportState: Connecting
2025-06-16 05:44:45.609237 csc_zta_agent[0x00001638, 0x00000e58] T/ NetworkTransportStateTracker.cpp:110 NetworkTransportStateTracker::transitionState() transitoned state: Initialized->Connecting
2025-06-16 05:44:45.609237 csc_zta_agent[0x00001638, 0x00000e58] I/ TcpTransport.cpp:114 TcpTransport::ConnectTransport() headendInfo=TCP destination [ftd.marvel.local]:443
2025-06-16 05:44:45.609237 csc_zta_agent[0x00001638, 0x00000e58] T/ NetworkTransportStateTracker.cpp:110 NetworkTransportStateTracker::transitionState() transitoned state: Initialized->Connecting
2025-06-16 05:44:45.610238 csc_zta_agent[0x00001638, 0x00000e58] T/ TcpTransport.cpp:150 TcpTransport::ConnectTransport() resolving dns for ftd.marvel.local
2025-06-16 05:44:45.610238 csc_zta_agent[0x00001638, 0x00000e58] E/ TcpTransport.cpp:166 TcpTransport::handleDnsResolveComplete() dns resolve error No such host is known
Información Relacionada