목차

소개

배경

사전 요구 사항

요구 사항

사용되는 구성 요소

구성

네트워크 다이어그램

ISE의 컨피그레이션

Python 예

특정 노드의 모든 시스템 인증서 가져오기

ID로 특정 노드의 시스템 인증서 가져오기

신뢰할 수 있는 모든 인증서 목록 가져오기

ID로 트러스트 인증서 가져오기

문제 해결

소개

이 문서에서는 openAPI를 사용하여 Cisco ISE(Identity Services Engine) 인증서를 관리하는 절차에 대해 설명합니다.

배경

엔터프라이즈 네트워크 보안 및 관리의 복잡성이 증가하는 상황에서 Cisco ISE 3.1은 인증서 라이프사이클 관리를 간소화하는 OpenAPI 형식의 API를 도입하여 효율적이고 안전한 인증서 운영을 위한 표준화되고 자동화된 인터페이스를 제공함으로써 관리자가 강력한 보안 방식을 적용하고 네트워크 컴플라이언스를 유지할 수 있도록 지원합니다.

사전 요구 사항

요구 사항

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

- Cisco ISE(Identity Services Engine)

- REST API

- 비단뱀

사용되는 구성 요소

- ISE 3.3

- 파이썬 3.10.0

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

구성

네트워크 다이어그램

토폴로지

ISE의 컨피그레이션

1단계: Open API 관리자 계정 추가

API 관리자를 추가하려면 Administration(관리) > System(시스템) > Admin Access(관리자 액세스) > Administrators(관리자) > Admin Users(관리자 사용자) > Add(추가)로 이동합니다.

API 관리자

2단계: ISE에서 Open API 활성화

Open API는 ISE에서 기본적으로 비활성화되어 있습니다. 활성화하려면 Administration(관리) > System(시스템) > Settings(설정) > API Settings(API 설정) > API Service Settings(API 서비스 설정)로 이동합니다. Open API 옵션을 전환합니다. 저장을 클릭합니다.

OpenAPI 활성화

3단계: ISE 개방형 API 탐색

administration(관리) > System(시스템) > Settings(설정) > API Settings(API 설정) > Overview(개요)로 이동합니다. API 방문 열기 링크를 클릭합니다.

OpenAPI 방문

Python 예

특정 노드의 모든 시스템 인증서 가져오기

API는 특정 ISE 노드의 모든 인증서를 나열합니다.

1단계: API 호출에 필요한 정보입니다.

방법

가져오기

URL

https://<ISE-PAN-IP>/api/v1/certs/system-certificate/<ISE-Node-Hostname>

자격 증명

Open API 계정 자격 증명 사용

헤더

수락: application/json

Content-Type: application/json

2단계: 특정 ISE 노드의 인증서를 검색하는 데 사용되는 URL을 찾습니다.

API URI

3단계: 여기는 파이썬 코드의 예입니다. 내용을 복사하여 붙여넣습니다. ISE IP, 사용자 이름, 비밀번호를 교체합니다. 실행할 python 파일로 저장합니다.

ISE와 python 코드 예제를 실행하는 디바이스 간의 올바른 연결을 확인합니다.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN"

headers = {"Accept": "application/json", "Content-Type": "application/json"}

basicAuth = HTTPBasicAuth("ApiAdmin", "Admin123")

response = requests.get(url=url, auth=basicAuth, headers=headers, verify=False)

print("Return Code:")

print(response.status_code)

print("Expected Outputs:")

print(response.json())

다음은 예상 출력의 예입니다.

Return Code:

200

Expected Outputs:

{'response': [{'id': '5b5b28e4-2a51-495c-8413-610190e1070b', 'friendlyName': 'Default self-signed saml server certificate - CN=SAML_ISE-DLC-CFME02-PSN.cisco.com', 'serialNumberDecimalFormat': '171164606212827159112166844026', 'issuedTo': 'SAML_ISE-DLC-CFME02-PSN.cisco.com', 'issuedBy': 'SAML_ISE-DLC-CFME02-PSN.cisco.com', 'validFrom': 'Fri Mar 29 01:14:22 CST 2024', 'expirationDate': 'Wed Mar 28 01:14:22 CST 2029', 'usedBy': 'Not in use', 'keySize': 4096, 'groupTag': '', 'selfSigned': True, 'signatureAlgorithm': 'SHA384withRSA', 'portalsUsingTheTag': '', 'sha256Fingerprint': '42ad8eeec643fce00605ac34aaf88ca5d687117591a2a4431b656dad8ce9616b', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/5b5b28e4-2a51-495c-8413-610190e1070b', 'type': 'application/json'}}, {'id': '8460950e-fd02-43f6-b1ea-abfa592cb641', 'friendlyName': 'CN=ISE-DLC-CFME02-PSN.cisco.com, OU=Certificate Services System Certificate#Certificate Services Endpoint Sub CA - ISE-DLC-CFME02-PSN#00003', 'serialNumberDecimalFormat': '27546245129667566853665077095037707664', 'issuedTo': 'ISE-DLC-CFME02-PSN.cisco.com', 'issuedBy': 'Certificate Services Endpoint Sub CA - ISE-DLC-CFME02-PSN', 'validFrom': 'Thu Mar 28 16:24:11 CST 2024', 'expirationDate': 'Thu Mar 29 16:24:11 CST 2029', 'usedBy': 'pxGrid', 'keySize': 4096, 'groupTag': '', 'selfSigned': False, 'signatureAlgorithm': 'SHA256withRSA', 'portalsUsingTheTag': '', 'sha256Fingerprint': 'a3c67ea007db0fd5672b471ea614a33c57f1ec55182b436cd0b386ebd88a141c', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/8460950e-fd02-43f6-b1ea-abfa592cb641', 'type': 'application/json'}}, {'id': 'ee5a1a18-4bba-49b5-960b-eabb4418ab5a', 'friendlyName': 'CN=ISE-DLC-CFME02-PSN.cisco.com, OU=ISE Messaging Service#Certificate Services Endpoint Sub CA - ISE-DLC-CFME02-PSN#00004', 'serialNumberDecimalFormat': '108100957755910846563764359601813445413', 'issuedTo': 'ISE-DLC-CFME02-PSN.cisco.com', 'issuedBy': 'Certificate Services Endpoint Sub CA - ISE-DLC-CFME02-PSN', 'validFrom': 'Thu Mar 28 16:24:12 CST 2024', 'expirationDate': 'Thu Mar 29 16:24:12 CST 2029', 'usedBy': 'ISE Messaging Service', 'keySize': 4096, 'groupTag': '', 'selfSigned': False, 'signatureAlgorithm': 'SHA256withRSA', 'portalsUsingTheTag': '', 'sha256Fingerprint': '3cf23d21cdae3bb412a24d3949a4e1e36666b7188fba24f15161be205c2de84a', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/ee5a1a18-4bba-49b5-960b-eabb4418ab5a', 'type': 'application/json'}}, {'id': '06024b57-e21d-44f7-ade9-f27835f825cd', 'friendlyName': 'CN=ISE-DLC-CFME02-PSN.cisco.com, OU=ISE Messaging Service#Certificate Services Endpoint Sub CA - ISE-DLC-CFME02-PSN#00001', 'serialNumberDecimalFormat': '161050984501207870146216443017020239440', 'issuedTo': 'ISE-DLC-CFME02-PSN.cisco.com', 'issuedBy': 'Certificate Services Endpoint Sub CA - ISE-DLC-CFME02-PSN', 'validFrom': 'Thu Mar 28 01:32:39 CST 2024', 'expirationDate': 'Thu Mar 29 01:32:39 CST 2029', 'usedBy': 'Not in use', 'keySize': 4096, 'groupTag': '', 'selfSigned': False, 'signatureAlgorithm': 'SHA256withRSA', 'portalsUsingTheTag': '', 'sha256Fingerprint': '53ebe08309e787d503a484538efe7631c89c6faa34371807cd98fd22a0ea3f4a', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/06024b57-e21d-44f7-ade9-f27835f825cd', 'type': 'application/json'}}, {'id': 'ba0833e1-d1b6-4080-bcf8-ef088cdcd2c8', 'friendlyName': 'CN=ISE-DLC-CFME02-PSN.cisco.com, OU=Certificate Services System Certificate#Certificate Services Endpoint Sub CA - ISE-DLC-CFME02-PSN#00002', 'serialNumberDecimalFormat': '47010535375030235417054492045580827528', 'issuedTo': 'ISE-DLC-CFME02-PSN.cisco.com', 'issuedBy': 'Certificate Services Endpoint Sub CA - ISE-DLC-CFME02-PSN', 'validFrom': 'Thu Mar 28 01:32:29 CST 2024', 'expirationDate': 'Thu Mar 29 01:32:29 CST 2029', 'usedBy': 'Not in use', 'keySize': 4096, 'groupTag': '', 'selfSigned': False, 'signatureAlgorithm': 'SHA256withRSA', 'portalsUsingTheTag': '', 'sha256Fingerprint': '656866d5143561929466b68d0bd207b67b3ae62cc69746fcef20a25000737d1c', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/ba0833e1-d1b6-4080-bcf8-ef088cdcd2c8', 'type': 'application/json'}}, {'id': '6c9c6d94-e693-4864-82cb-85ea37fd9527', 'friendlyName': 'Default self-signed saml server certificate - CN=SAML_ISE-BGL-CFME01-PAN.cisco.com', 'serialNumberDecimalFormat': '17112682887682578269840298717', 'issuedTo': 'SAML_ISE-BGL-CFME01-PAN.cisco.com', 'issuedBy': 'SAML_ISE-BGL-CFME01-PAN.cisco.com', 'validFrom': 'Sun Mar 24 16:18:08 CST 2024', 'expirationDate': 'Fri Mar 23 16:18:08 CST 2029', 'usedBy': 'SAML', 'keySize': 4096, 'groupTag': '', 'selfSigned': True, 'signatureAlgorithm': 'SHA384withRSA', 'portalsUsingTheTag': '', 'sha256Fingerprint': '010365518c6282e7fe54aa0b593433a2ae912000a3c76e0b2763b866bc7304e9', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/6c9c6d94-e693-4864-82cb-85ea37fd9527', 'type': 'application/json'}}, {'id': '9a7751ba-d630-43f2-b43d-bcf431dffa97', 'friendlyName': 'Default self-signed server certificate', 'serialNumberDecimalFormat': '17116455823360843797526070457', 'issuedTo': 'ISE-DLC-CFME02-PSN.cisco.com', 'issuedBy': 'ISE-DLC-CFME02-PSN.cisco.com', 'validFrom': 'Fri Mar 29 01:06:22 CST 2024', 'expirationDate': 'Sun Mar 29 01:06:22 CST 2026', 'usedBy': 'EAP Authentication, Admin, Portal, RADIUS DTLS', 'keySize': 4096, 'groupTag': 'Default Portal Certificate Group', 'selfSigned': True, 'signatureAlgorithm': 'SHA384withRSA', 'portalsUsingTheTag': 'BYOD Portal (default), Blocked List Portal (default), Certificate Provisioning Portal (default), Client Provisioning Portal (default), Hotspot Guest Portal (default), ISE Portal (default), MDM Portal (default), My Devices Portal (default), Self-Registered Guest Portal (default), Sponsor Portal (default), Sponsored Guest Portal (default)', 'sha256Fingerprint': 'f498da0b64fac68318f1f8f195e915c1000265d8950f610ec3bb9c75822739bd', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/9a7751ba-d630-43f2-b43d-bcf431dffa97', 'type': 'application/json'}}], 'nextPage': None, 'previousPage': None, 'version': '1.0.1'}

ID로 특정 노드의 시스템 인증서 가져오기

이 API는 제공된 호스트 이름 및 ID를 기반으로 특정 노드의 시스템 인증서에 대한 세부 정보를 제공합니다.

1단계: API 호출에 필요한 정보입니다.

방법

가져오기

URL

https://<ISE-PAN-IP>/api/v1/certs/system-certificate/<ISE-Node-Hostname>/<ID-Of-Certificate>

자격 증명

Open API 계정 자격 증명 사용

헤더

수락: application/json

Content-Type: application/json

2단계: 지정된 호스트 이름 및 ID를 기반으로 특정 노드의 인증서를 검색하는 데 사용되는 URL을 찾습니다.

API URI

3단계: 여기는 파이썬 코드의 예입니다. 내용을 복사하여 붙여넣습니다. ISE IP, 사용자 이름, 비밀번호를 교체합니다. 실행할 python 파일로 저장합니다.

ISE와 python 코드 예제를 실행하는 디바이스 간의 올바른 연결을 확인합니다.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/5b5b28e4-2a51-495c-8413-610190e1070b"

headers = {"Accept": "application/json", "Content-Type": "application/json"}

basicAuth = HTTPBasicAuth("ApiAdmin", "Admin123")

response = requests.get(url=url, auth=basicAuth, headers=headers, verify=False)

print("Return Code:")

print(response.status_code)

print("Expected Outputs:")

print(response.json())

참고: ID는 "특정 노드의 모든 시스템 인증서 가져오기"의 3단계 API 출력에서 가져온 것입니다. 예를 들어, 5b5b28e4-2a51-495c-8413-610190e1070b는 "Default self-signed saml server certificate - CN=SAML_ISE-DLC-CFME02-PSN.cisco.com"입니다.

다음은 예상 출력의 예입니다.

Return Code:

200

Expected Outputs:

{'response': {'id': '5b5b28e4-2a51-495c-8413-610190e1070b', 'friendlyName': 'Default self-signed saml server certificate - CN=SAML_ISE-DLC-CFME02-PSN.cisco.com', 'serialNumberDecimalFormat': '171164606212827159112166844026', 'issuedTo': 'SAML_ISE-DLC-CFME02-PSN.cisco.com', 'issuedBy': 'SAML_ISE-DLC-CFME02-PSN.cisco.com', 'validFrom': 'Fri Mar 29 01:14:22 CST 2024', 'expirationDate': 'Wed Mar 28 01:14:22 CST 2029', 'usedBy': 'Not in use', 'keySize': 4096, 'groupTag': '', 'selfSigned': True, 'signatureAlgorithm': 'SHA384withRSA', 'portalsUsingTheTag': '', 'sha256Fingerprint': '42ad8eeec643fce00605ac34aaf88ca5d687117591a2a4431b656dad8ce9616b', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/system-certificate/ISE-DLC-CFME02-PSN/5b5b28e4-2a51-495c-8413-610190e1070b', 'type': 'application/json'}}, 'version': '1.0.1'}

신뢰할 수 있는 모든 인증서 목록 가져오기

API는 ISE 클러스터의 모든 신뢰할 수 있는 인증서를 나열합니다.

1단계: API 호출에 필요한 정보입니다.

방법

가져오기

URL

https://<ISE-PAN-IP>/api/v1/certs/trusted-certificate

자격 증명

Open API 계정 자격 증명 사용

헤더

수락: application/json

Content-Type: application/json

2단계: 신뢰할 수 있는 인증서를 검색하는 데 사용되는 URL을 찾습니다.

API URI

3단계: 여기는 파이썬 코드의 예입니다. 내용을 복사하여 붙여넣습니다. ISE IP, 사용자 이름, 비밀번호를 교체합니다. 실행할 python 파일로 저장합니다.

ISE와 python 코드 예제를 실행하는 디바이스 간의 올바른 연결을 확인합니다.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/certs/trusted-certificate"

headers = {"Accept": "application/json", "Content-Type": "application/json"}

basicAuth = HTTPBasicAuth("ApiAdmin", "Admin123")

response = requests.get(url=url, auth=basicAuth, headers=headers, verify=False)

print("Return Code:")

print(response.status_code)

print("Expected Outputs:")

print(response.json())

다음은 예상 출력의 예입니다. (생략)

Return Code:

200

Expected Outputs:

{'response': [{'id': '147d97cc-6ce9-43d7-9928-8cd0fa83e140', 'friendlyName': 'VeriSign Class 3 Public Primary Certification Authority', 'subject': 'CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU=(c) 2006 VeriSign\\, Inc. - For authorized use only,OU=VeriSign Trust Network,O=VeriSign\\, Inc.,C=US', 'issuedTo': 'VeriSign Class 3 Public Primary Certification Authority - G5', 'issuedBy': 'VeriSign Class 3 Public Primary Certification Authority - G5', 'keySize': '2048', 'signatureAlgorithm': 'SHA1withRSA', 'validFrom': 'Wed Nov 08 08:00:00 CST 2006', 'expirationDate': 'Thu Jul 17 07:59:59 CST 2036', 'serialNumberDecimalFormat': '33037644167568058970164719475676101450', 'description': 'Auto imported for secure connection to cisco.com/perfigo.com', 'status': 'Enabled', 'trustedFor': 'Cisco Services', 'internalCA': False, 'downloadCRL': 'off', 'crlDistributionUrl': None, 'automaticCRLUpdate': 'on', 'automaticCRLUpdatePeriod': '5', 'automaticCRLUpdateUnits': 'Minutes', 'nonAutomaticCRLUpdatePeriod': '1', 'nonAutomaticCRLUpdateUnits': 'Hours', 'crlDownloadFailureRetries': '10', 'crlDownloadFailureRetriesUnits': 'Minutes', 'authenticateBeforeCRLReceived': 'off', 'ignoreCRLExpiration': 'off', 'enableServerIdentityCheck': 'off', 'enableOCSPValidation': 'off', 'selectedOCSPService': '', 'rejectIfNoStatusFromOCSP': 'off', 'rejectIfUnreachableFromOCSP': 'off', 'sha256Fingerprint': '9acfab7e43c8d880d06b262a94deeee4b4659989c3d0caf19baf6405e41ab7df', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/trusted-certificate/147d97cc-6ce9-43d7-9928-8cd0fa83e140', 'type': 'application/json'}},{'id': '2ed8db2d-a93c-45a7-b0de-4ee52978bf36', 'friendlyName': 'Certificate Services Endpoint Sub CA - ISE-RTP-CFME02-MNT#00026', 'subject': 'CN=Certificate Services Endpoint Sub CA - ISE-RTP-CFME02-MNT', 'issuedTo': 'Certificate Services Endpoint Sub CA - ISE-RTP-CFME02-MNT', 'issuedBy': 'Certificate Services Node CA - ISE-BGL-CFME01-PAN', 'keySize': '4096', 'signatureAlgorithm': 'SHA256withRSA', 'validFrom': 'Fri Jul 05 11:14:45 CST 2024', 'expirationDate': 'Fri Mar 24 16:19:21 CST 2034', 'serialNumberDecimalFormat': '32567431426291188219902826022164975182', 'description': "Auto import of trust certificate from PSN's CA server", 'status': 'Enabled', 'trustedFor': 'Infrastructure,Endpoints', 'internalCA': True, 'downloadCRL': 'off', 'crlDistributionUrl': None, 'automaticCRLUpdate': 'on', 'automaticCRLUpdatePeriod': '5', 'automaticCRLUpdateUnits': 'Minutes', 'nonAutomaticCRLUpdatePeriod': '1', 'nonAutomaticCRLUpdateUnits': 'Hours', 'crlDownloadFailureRetries': '10', 'crlDownloadFailureRetriesUnits': 'Minutes', 'authenticateBeforeCRLReceived': 'off', 'ignoreCRLExpiration': 'off', 'enableServerIdentityCheck': 'off', 'enableOCSPValidation': 'on', 'selectedOCSPService': 'Internal_OCSP_Service', 'rejectIfNoStatusFromOCSP': 'on', 'rejectIfUnreachableFromOCSP': 'off', 'sha256Fingerprint': '6162311dcf7a2517a6bb454b9e7e46ad64cbf4be1fcfc73680730304c94e28f7', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/trusted-certificate/2ed8db2d-a93c-45a7-b0de-4ee52978bf36', 'type': 'application/json'}},{'id': '34ae5495-f892-422b-b27e-4e48246b54cc', 'friendlyName': 'Certificate Services OCSP Responder - ISE-RTP-CFME02-MNT#00027', 'subject': 'CN=Certificate Services OCSP Responder - ISE-RTP-CFME02-MNT', 'issuedTo': 'Certificate Services OCSP Responder - ISE-RTP-CFME02-MNT', 'issuedBy': 'Certificate Services Endpoint Sub CA - ISE-RTP-CFME02-MNT', 'keySize': '2048', 'signatureAlgorithm': 'SHA256withRSA', 'validFrom': 'Fri Jul 05 11:16:34 CST 2024', 'expirationDate': 'Fri Jul 06 11:16:34 CST 2029', 'serialNumberDecimalFormat': '32318639486615740757657486695632971049', 'description': "Auto import of trust certificate from PSN's CA server", 'status': 'Enabled', 'trustedFor': 'Infrastructure,Endpoints', 'internalCA': True, 'downloadCRL': 'off', 'crlDistributionUrl': None, 'automaticCRLUpdate': 'on', 'automaticCRLUpdatePeriod': '5', 'automaticCRLUpdateUnits': 'Minutes', 'nonAutomaticCRLUpdatePeriod': '1', 'nonAutomaticCRLUpdateUnits': 'Hours', 'crlDownloadFailureRetries': '10', 'crlDownloadFailureRetriesUnits': 'Minutes', 'authenticateBeforeCRLReceived': 'off', 'ignoreCRLExpiration': 'off', 'enableServerIdentityCheck': 'off', 'enableOCSPValidation': 'off', 'selectedOCSPService': '', 'rejectIfNoStatusFromOCSP': 'off', 'rejectIfUnreachableFromOCSP': 'off', 'sha256Fingerprint': 'bae344121c6fd3b9cfe43c4853406595f450b5d90c474419e8d692e0098a1200', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/trusted-certificate/34ae5495-f892-422b-b27e-4e48246b54cc', 'type': 'application/json'}}], 'nextPage': None, 'previousPage': None, 'version': '1.0.1'}

ID로 트러스트 인증서 가져오기

이 API는 지정된 ID를 기반으로 신뢰 인증서의 세부 정보를 표시할 수 있습니다.

1단계: API 호출에 필요한 정보입니다.

방법

가져오기

URL

https://<ISE-PAN-IP>/api/v1/certs/trusted-certificate/<ID-Of-Certificate>

자격 증명

Open API 계정 자격 증명 사용

헤더

수락: application/json

Content-Type: application/json

2단계: 구축 정보를 검색하는 데 사용되는 URL을 찾습니다.

API URI

3단계: 여기는 파이썬 코드의 예입니다. 내용을 복사하여 붙여넣습니다. ISE IP, 사용자 이름, 비밀번호를 교체합니다. 실행할 python 파일로 저장합니다.

ISE와 python 코드 예제를 실행하는 디바이스 간의 올바른 연결을 확인합니다.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/certs/trusted-certificate/147d97cc-6ce9-43d7-9928-8cd0fa83e140"

headers = {"Accept": "application/json", "Content-Type": "application/json"}

basicAuth = HTTPBasicAuth("ApiAdmin", "Admin123")

response = requests.get(url=url, auth=basicAuth, headers=headers, verify=False)

print("Return Code:")

print(response.status_code)

print("Expected Outputs:")

print(response.json())

참고: ID는 "모든 신뢰할 수 있는 인증서 목록 가져오기"의 3단계 API 출력에서 가져온 것입니다. 예를 들어 147d97cc-6ce9-43d7-9928-8cd0fa83e140은 "VeriSign Class 3 Public Primary Certification Authority"입니다.

다음은 예상 출력의 예입니다.

Return Code:

200

Expected Outputs:

{'response': {'id': '147d97cc-6ce9-43d7-9928-8cd0fa83e140', 'friendlyName': 'VeriSign Class 3 Public Primary Certification Authority', 'subject': 'CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU=(c) 2006 VeriSign\\, Inc. - For authorized use only,OU=VeriSign Trust Network,O=VeriSign\\, Inc.,C=US', 'issuedTo': 'VeriSign Class 3 Public Primary Certification Authority - G5', 'issuedBy': 'VeriSign Class 3 Public Primary Certification Authority - G5', 'keySize': '2048', 'signatureAlgorithm': 'SHA1withRSA', 'validFrom': 'Wed Nov 08 08:00:00 CST 2006', 'expirationDate': 'Thu Jul 17 07:59:59 CST 2036', 'serialNumberDecimalFormat': '33037644167568058970164719475676101450', 'description': 'Auto imported for secure connection to cisco.com/perfigo.com', 'status': 'Enabled', 'trustedFor': 'Cisco Services', 'internalCA': False, 'downloadCRL': 'off', 'crlDistributionUrl': None, 'automaticCRLUpdate': 'on', 'automaticCRLUpdatePeriod': '5', 'automaticCRLUpdateUnits': 'Minutes', 'nonAutomaticCRLUpdatePeriod': '1', 'nonAutomaticCRLUpdateUnits': 'Hours', 'crlDownloadFailureRetries': '10', 'crlDownloadFailureRetriesUnits': 'Minutes', 'authenticateBeforeCRLReceived': 'off', 'ignoreCRLExpiration': 'off', 'enableServerIdentityCheck': 'off', 'enableOCSPValidation': 'off', 'selectedOCSPService': '', 'rejectIfNoStatusFromOCSP': 'off', 'rejectIfUnreachableFromOCSP': 'off', 'sha256Fingerprint': '9acfab7e43c8d880d06b262a94deeee4b4659989c3d0caf19baf6405e41ab7df', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/certs/trusted-certificate/147d97cc-6ce9-43d7-9928-8cd0fa83e140', 'type': 'application/json'}, 'isReferredInPolicy': False}, 'version': '1.0.1'}

문제 해결

Open API와 관련된 문제를 해결하려면 Debug Log Configuration(디버그 로그 컨피그레이션) 창에서 Log Levelfor theapiservicecomponent를 DEBUG로 설정합니다.

디버그를 활성화하려면 Operations(운영) > Troubleshoot(문제 해결) > Debug Wizard(디버그 마법사) > Debug Log Configuration(디버그 로그 컨피그레이션) > ISE Node(ISE 노드) > apisservice(어플라이언스)로 이동합니다.

API 서비스 디버그

디버그 로그를 다운로드하려면 Operations(운영) > Troubleshoot(문제 해결) > Download Logs(로그 다운로드) > ISE PAN Node(ISE PAN 노드) > Debug Logs(디버그 로그)로 이동합니다.

디버그 로그 다운로드