Contenido

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:

- Acceso seguro de Cisco

- Sección Inscripción de Dispositivos en Acceso de Confianza Cero Usando la Guía de Certificados

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

- Soporte Técnico y Documentación - Cisco Systems