목차

소개

이 문서에서는 인증서 기반 자동 등록을 위해 ZTNA를 구성하는 데 필요한 단계를 설명합니다.

사전 요구 사항

- Secure Client 최소 버전 5.1.9.x

- Windows용 TPM(신뢰할 수 있는 플랫폼 모듈)

- Apple 디바이스용 Secure Enclave 코프로세서

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- Cisco 보안 액세스

- 인증서 가이드 섹션을 사용하여 제로 트러스트 액세스에 디바이스 등록

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- Windows 11(TPM 버전 2.0 포함)

- ZTNA 및 DUO 모듈이 활성화된 Secure Client 버전 5.1.10.17

- Microsoft Active Directory 2022

- 인증서 생성을 위한 Openssl 툴

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

Secure Access Dashboard에서 자동 등록 활성화

이 기능을 활성화하는 첫 번째 단계는 다음과 같은 보안 액세스 자동 등록 기능을 활성화하는 것입니다.

1. Dashboard(대시보드) -> Connect(연결) -> End User Connectivity(최종 사용자 연결) -> Zero Trust(제로 신뢰)로 이동합니다.

2. 관리 옵션을 클릭합니다.

3. 인증서 사용을 활성화합니다.

4. 로컬 인증 기관에서 CA 인증서를 다운로드하여 업로드합니다.

5. 등록 구성을 다운로드하고 운영 체제에 따라 디렉토리에 배치합니다.

-창: C:\ProgramData\Cisco\Cisco 보안 클라이언트\ZTA\enrollment_choices

- macOS: /opt/cisco/secureclient/zta/enrollment_choices

6. 설정이 완료되면 저장해야 합니다.

인증서 템플릿 및 설치

보안 액세스에는 다음과 같은 필수 인증서 필드가 필요합니다.

- 사용자 RFC-822 불만 이메일 주소 또는 UPN(User Principal Name)을 포함하는 주체 대체 이름(SAN)

예:

옵션 1: RFC822 호환 이메일

email.1 = username@domain.local

옵션 2: (대체): UPN(Microsoft 전용)

기타 이름:1.3.6.1.4.1.311.20.2.3;UTF8:username@domain.local

이 예에서는 Microsoft AD의 사용자 인증서 템플릿을 사용하여 인증서를 생성합니다.

1단계: Microsoft AD로 이동하여 Certificate Manager를 엽니다

2단계: 실행을 열고 mmc(Microsoft Management Console)를 입력합니다.

3단계: File(파일)을 클릭한 다음 Snap-in 추가/제거

4단계: 인증서 템플릿 추가

5단계: 중복 사용자 인증서

6단계: 설명된 대로 설정을 구성합니다

1. 새 템플릿 이름: (General)(일반) 탭에 있는 ztna-client-enroll(ztna-client-enroll)

2. (Subject Name) 탭에서 (Supply in the request)를 선택합니다.

참고: 이렇게 하면 SAN(Service Alternative Name)과 같은 openssl 템플릿에서 제공하는 옵션이 수락됩니다

7단계: OK(확인)를 클릭하여 새 템플릿을 저장합니다

8단계: 다음을 수행하여 AD 템플릿 목록에 새 템플릿을 추가합니다.

1. certsrv.msc를 실행합니다

2 . Certificate Templates(인증서 템플릿)를 마우스 오른쪽 버튼으로 클릭하고 New(새로 만들기) -> certificate template to issue(인증서 템플릿)를 선택합니다.

3. 새로 생성한 템플리트를 선택합니다(ztna-client-enroll).

Openssl을 사용하여 인증서 생성

1단계: 콘텐츠로 san.cnf 파일 만들기

[ 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

2단계: 템플릿을 사용하여 인증서 생성

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

CA ZTNA 템플릿으로 사용자 인증서 서명

1단계: user.csr 파일의 내용을 복사합니다.

2단계: 로컬 AD 서명 기관(https:http://<ip-address>/certsrv/)으로 이동합니다.

3단계: Request a Certificate(인증서 요청) -> Advanced Certificate Request(고급 인증서 요청) -> select ztna-client-enroll template(ztna-client-enroll 템플릿 선택)을 클릭합니다.

4단계: Base64 형식의 인증서를 다운로드하고 사용자 개인 신뢰 저장소 인증서에 설치합니다.

5단계: 인증서에 올바른 정보가 있는지 확인합니다.

6단계: 등록을 시작하려면 ZTNA 모듈을 다시 시작하십시오.

다음을 확인합니다.

설정이 올바르게 작동하는지 확인하려면 이 섹션을 활용하십시오.

1단계: 등록 선택 파일을 구성할 때 ZTNA 모듈 메시지:

2단계: ZTNA 모듈을 처음 재시작한 후에는 ZTNA에 자동 등록되었음을 확인할 수 있습니다

3단계: SAN 정보를 기반으로 활동 검색에 표시되는 올바른 사용자를 확인합니다.

4단계: 인증서에 올바른 정보가 있는지 확인합니다.

문제 해결

이 섹션에서는 설정 문제 해결에 사용할 수 있는 정보를 제공합니다.

1단계:  올바른 정보가 인증서에 있으며 올바른 인증서 저장소에 설치되어 있는지 확인합니다.

2단계: DART를 사용한 인증서 요구 사항에 대해 등록이 실패하지 않는지 확인합니다.

3단계: UZTNA를 사용 중인 경우 FTD 외부 인터페이스를 올바르게 확인할 수 있는지 확인합니다.

일반 오류:

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

관련 정보

- 기술 지원 및 문서 − Cisco Systems