소개
이 문서에서는 FMC에서 관리하는 Firepower Threat Defense 장치에서 CA(Certificate Authority) 가져오기 오류를 해결하고 수정하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- PKI(Public Key Infrastructure)
- FMC(Firepower Management Center)
- FTD(Firepower Threat Defense)
- OpenSSL
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 버전을 기반으로 합니다.
- MacOS x 10.14.6
- FMC 6.4
- OpenSSL
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
참고: FTD 관리 디바이스에서는 CSR(Certificate Signing Request)이 생성되기 전에 CA 인증서가 필요합니다.
- CSR이 외부 서버(예: Windows Server 또는 OpenSSL)에서 생성되는 경우, FTD는 수동 키 등록을 지원하지 않으므로 수동 등록 방법은 실패할 수 있습니다. 다른 메서드(예: PKCS12)를 사용해야 합니다.
문제
이 특정 시나리오에서 FMC는 CA 인증서 상태(그림과 같이)에 빨간색 십자선을 표시하며, 이는 인증서 등록이 CA 인증서를 설치하지 못했다는 메시지와 함께 "CA 인증서 구성 실패"라는 메시지를 표시합니다. 이 오류는 일반적으로 이미지에 표시된 것처럼 인증서가 제대로 패키지되지 않았거나 PKCS12 파일에 올바른 발급자 인증서가 없을 때 나타납니다.
참고: 최신 FMC 버전에서는 .pfx cert의 신뢰 체인에 포함된 루트 CA를 사용하여 추가 신뢰 지점을 생성하는 ASA 동작과 일치하도록 이 문제가 해결되었습니다.
솔루션
1단계. .pfx 인증서 찾기
FMC GUI에 등록된 pfx 인증서를 가져와 저장하고 Mac Terminal(CLI)에서 파일을 찾습니다.
ls
2단계. .pfx 파일에서 인증서 및 키 추출
pfx 파일에서 클라이언트 인증서(CA 인증서가 아님)를 추출합니다. .pfx 파일을 생성하는 데 사용한 패스프레이즈가 필요합니다.
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out id.pem
id 내보내기
CA 인증서를 추출합니다(클라이언트 인증서가 아님).
openssl pkcs12 -in cert.pfx -cacerts -nokeys -out certs.pem
cacerts 내보내기
pfx 파일에서 개인 키를 추출합니다(2단계와 동일한 패스프레이즈가 필요함).
openssl pkcs12 -in cert.pfx -nocerts -out key.pem
키 내보내기
이제 cert.pfx(원본 pfx 번들), certs.pem(CA 인증서), id.pem(클라이언트 인증서) 및 key.pem(개인 키)의 네 가지 파일이 있습니다.
내보내기 후 ls
3단계. 텍스트 편집기에서 인증서 확인
텍스트 편집기를 사용하여 인증서를 확인합니다(예: nano certs.pem).
이 특정 시나리오에서는 certs.pem에 하위 CA(발급 CA)만 포함되었습니다.
5단계부터 이 문서에서는 certs.pem 파일에 2개의 인증서(하나의 루트 CA와 하나의 하위 CA)가 포함된 시나리오를 다룹니다.
certs 보기
4단계. 메모장에서 개인 키 확인
텍스트 편집기를 사용하여 key.pem 파일의 내용을 확인합니다(예: nano certs.pem).
5단계. CA 인증서 분할
certs.pem 파일에 2개의 인증서(1개의 루트 CA와 1개의 하위 CA)가 있는 경우, FMC에서 pfx 형식의 인증서를 가져오려면 신뢰 체인에서 루트 CA를 제거해야 하며, 검증을 위해 체인에 하위 CA만 남겨둡니다.
certs.pem을 여러 파일로 분할한 다음 명령은 certs의 이름을 cacert-XX로 바꿉니다.
split -p "-----BEGIN CERTIFICATE-----" certs.pem cacert-
분할 후 분할
아래에 설명된 명령을 사용하여 이러한 새 파일에 .pem 확장명을 추가합니다.
for i in cacert-*;do mv "$i" "$i.pem";done
스크립트 이름 바꾸기
두 개의 새 파일을 검토하고 어떤 파일에 루트 CA가 포함되어 있는지, 어떤 파일에 하위 CA가 포함되어 있는지 설명한 명령을 통해 확인합니다.
먼저 id.pem 파일(ID 인증서)의 발급자를 찾습니다.
openssl x509 -in id.pem -issuer -noout
발급자 보기
이제 두 개의 accert 파일(CA 인증서)의 제목을 찾습니다.
openssl x509 -in cacert-aa.pem -subject -noout
openssl x509 -in cacert-ab.pem -subject -noout
주체 수표
Subject와 id.pem 파일의 Issuer를 매칭하는 cacert 파일은(이전 그림에 나와 있듯이) 나중에 PFX 인증서를 만드는 데 사용되는 Sub CA입니다.
일치하는 제목이 없는 cacert 파일을 삭제합니다. 이 경우 해당 인증서는 cacert-aa.pem입니다.
rm -f cacert-aa.pem
6단계. PKCS12 파일에서 인증서 병합
새 pfx 파일에서 ID 인증서(id.pem) 및 개인 키(key.pem)와 함께 하위 CA 인증서(이 경우 이름은 cacert-ab.pem임)를 병합합니다. 암호를 사용하여 이 파일을 보호해야 합니다. 필요한 경우 cacert-ab.pem 파일 이름을 파일과 일치하도록 변경합니다.
openssl pkcs12 -export -in id.pem -certfile cacert-ab.pem -inkey key.pem -out new-cert.pfx
pfx 생성
7단계. FMC에서 PKCS12 파일 가져오기
FMC에서 Device(디바이스) > Certificates(인증서)로 이동하고 이미지에 표시된 대로 인증서를 원하는 방화벽으로 가져옵니다.
인증서 등록
새 인증서의 이름을 삽입합니다.
등록
새 인증서를 추가하고 등록 프로세스가 FTD에 새 인증서를 구축할 때까지 기다립니다.
새 인증서
새 인증서는 CA 필드에 빨간색 십자가 없이 표시되어야 합니다.
다음을 확인합니다.
설정이 올바르게 작동하는지 확인하려면 이 섹션을 활용하십시오.
Windows에서는 .pfx 파일에 ID 인증서만 포함되어 있지만 저장소에 하위 CA, CA 체인이 있는 경우 OS에서 인증서의 전체 체인을 표시하는 문제가 발생할 수 있습니다.
.pfx 파일에서 인증서 목록을 확인하려면 certutil 또는 openssl과 같은 도구를 사용할 수 있습니다.
certutil -dump cert.pfx
certutil은 .pfx 파일의 인증서 목록을 제공하는 명령줄 유틸리티입니다. ID, SubCA, CA가 포함된 전체 체인(있는 경우)을 확인해야 합니다.
또는 아래 명령과 같이 openssl 명령을 사용할 수 있습니다.
openssl pkcs12 -info -in cert.pfx
CA 및 ID 정보와 함께 인증서 상태를 확인하려면 아이콘을 선택하여 성공적으로 가져왔는지 확인할 수 있습니다.