본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 보안·개인정보 · 윈도우즈 유틸

dcert (TLS Certificate Toolkit & MCP Server)

0

dcert는 Rust로 구축된 TLS 인증서 분석 및 관리 도구입니다. PEM 파일이나 HTTPS 엔드포인트에서 인증서를 읽어 형식 변환, 키 검증, TLS 연결 검증, 인증서 해지 상태 확인 등의 기능을 제공합니다.

개발 도구보안인증서

소개

dcert는 Rust로 구축된 TLS 인증서 분석 및 관리 도구입니다. PEM 파일이나 HTTPS 엔드포인트에서 인증서를 읽어 형식 변환, 키 검증, TLS 연결 검증, 인증서 해지 상태 확인 등의 기능을 제공합니다. Model Context Protocol(MCP) 서버로도 동작하여 AI 기반 IDE와의 통합을 지원하며, HashiCorp Vault PKI와의 연동을 통해 인증서 발급, 갱신, 저장 등의 작업을 수행할 수 있습니다.

상세정보

인증서 분석 및 검증

dcert는 기본적으로 dcert check 명령(또는 단순히 dcert)을 통해 PEM 파일이나 HTTPS URL에서 인증서를 분석합니다. 인증서 체인이 공개적으로 신뢰할 수 있는 루트 CA(Mozilla/CCADB 세트)에 연결되는지, 사설 PKI에 종속되는지, 또는 자가 서명인지 여부를 분류하여 출력합니다. 또한 –expiry-warn, –check-revocation, –compliance 옵션을 통해 만료 경고, OCSP 기반 해지 검사, CA/B Forum 기준 준수 여부 등을 확인할 수 있습니다.

형식 변환

dcert convert 서브커맨드를 통해 PFX와 PEM 형식 간 상호 변환이 가능합니다. 예를 들어 PFX 파일에서 인증서와 개인 키를 분리하여 PEM으로 추출하거나, PEM 인증서와 키를 PFX로 묶을 수 있습니다. 또한 Java 키스토어(JKS)와 호환되는 PKCS12 키스토어 및 트러스트스토어를 생성할 수 있으며, 변환 과정에서 인증서 순서, 중복, 만료된 CA 등에 대한 사전 경고를 제공합니다.

키-인증서 매칭 검증

dcert verify-key 명령은 개인 키가 특정 인증서와 일치하는지 확인합니다. PEM 파일 쌍 또는 HTTPS 엔드포인트와 키 파일을 비교할 수 있으며, 인수 없이 실행 시 현재 디렉터리에서 .crt 또는 .pem 파일과 동일한 이름을 가진 .key 파일을 자동으로 찾아 매칭 여부를 검사합니다. 불일치 시 종료 코드 7을 반환합니다.

MCP 서버 (AI IDE 통합)

dcert는 dcert-mcp 실행 파일을 통해 Model Context Protocol(MCP) 서버로 동작할 수 있습니다. 이를 통해 AI 기반 통합 개발 환경(IDE)이 인증서 분석, 변환, 검증 기능을 도구처럼 호출할 수 있도록 지원합니다. HTTP 전송 모드, 프록시 및 타임아웃 구성 옵션을 제공하며, 표준 입출력을 통한 통신도 가능합니다.

HashiCorp Vault PKI 연동

Vault 환경 변수(VAULT_ADDR, VAULT_TOKEN 등)를 설정하면 dcert vault 서브커맨드를 통해 Vault의 PKI 시크릿 엔진과 상호작용할 수 있습니다. 인증서 발급(issue), CSR 서명(sign), 해지(revoke), 목록 조회(list), 저장(store), 검증(validate), 갱신(renew) 등의 작업을 수행할 수 있으며, LDAP 및 AppRole 인증 방식도 지원합니다.

다운로드·설치 방법

Windows 사용자는 Chocolatey 패키지 관리자를 통해 dcert를 설치할 수 있습니다. 관리자 권한으로 PowerShell을 열고 다음 명령을 실행합니다:

choco install dcert

또는 공식 GitHub 릴리스 페이지에서 dcert-x86_64-pc-windows-msvc.zip 아카이브를 다운로드하여 압축을 풀고, 포함된 dcert.exe 및 dcert-mcp.exe 파일을 시스템 PATH에 추가할 수 있습니다. 이 경우, Windows 빌드는 시스템 신뢰 저장소를 포함하지 않으므로 인증서 검증이 실패할 경우 SSL_CERT_FILE 환경 변수를 통해 신뢰할 수 있는 CA 번들(예: cacert.pem)을 지정해야 합니다.

또한 pip install dcert 명령을 통해 Python 패키지 형태로 설치할 수 있으며, 이 경우 win_amd64 휠에 dcert.exe와 dcert-mcp.exe가 번들로 포함됩니다.

기본 사용법

설치 후 터미널 또는 PowerShell에서 다음 명령으로 인증서를 분석할 수 있습니다.

  • HTTPS 엔드포인트의 인증서 확인:
    dcert https://www.google.com
    
  • 로컬 PEM 파일 분석:
    dcert certificate.pem
    
  • 표준 입력을 통한 인증서 분석 (예: 파이프):
    cat certificate.pem | dcert
    
  • 만료 임박 경고 (30일 이내):
    dcert https://example.com --expiry-warn 30
    
  • PFX를 PEM으로 변환:
    dcert convert pfx-to-pem server.pfx --password secret --output-dir ./certs
    
  • 개인 키와 인증서 매칭 확인:
    dcert verify-key cert.pem --key private.key
    
  • Vault를 통해 새 인증서 발급:
    dcert vault issue --cn www.example.com --role my-role
    

이런 경우에 유용합니다

웹 서버 관리자는 dcert를 사용하여 외부 서비스의 TLS 인증서가 만료되기 전에 사전 점검하고, 내부 PKI에서 발급한 인증서의 유효성을 검증할 수 있습니다. 보안 담당자는 OCSP 해지 검사와 CA/B Forum 준수 검사를 통해 인증서 정책 위반을 탐지할 수 있습니다. 개발자는 로컬 개발 환경에서 자체 서명 인증서를 생성하고, PFX와 PEM 간 형식을 변환하여 다양한 플랫폼에 배포할 수 있습니다. DevOps 엔지니어는 CI/CD 파이프라인에 dcert를 통합하여 인증서 만료 여부를 자동으로 점검하고, HashiCorp Vault와 연동하여 인증서 발급 및 갱신 작업을 자동화할 수 있습니다. 또한 AI 기반 IDE를 사용하는 개발자는 MCP 서버 기능을 통해 인증서 분석 도구를 개발 환경 내에서 직접 호출할 수 있습니다.

지원 환경·시스템 요구사항

dcert는 Windows 10 이상에서 실행 가능하며, Chocolatey, 수동 ZIP 다운로드, 또는 pip를 통해 설치할 수 있습니다. Windows 빌드는 vendored OpenSSL을 사용하므로 시스템 신뢰 저장소를 포함하지 않습니다. 따라서 인증서 검증 중 ‘신뢰할 수 있는 발급자를 찾을 수 없음’ 오류가 발생하면, SSL_CERT_FILE 환경 변수를 설정하여 Mozilla의 cacert.pem 또는 조직 내 CA 번들을 지정해야 합니다. Linux 및 macOS에서는 Homebrew 또는 소스 코드로부터 빌드하여 사용할 수 있습니다.

최신 버전·업데이트

현재 버전은 3.0.45이며, GitHub 저장소의 Releases 페이지에서 최신 릴리스 노트를 확인할 수 있습니다. 업데이트는 Chocolatey(choco upgrade dcert), Homebrew(brew upgrade dcert), 또는 pip(pip install --upgrade dcert)를 통해 수행할 수 있습니다.

제한 사항·확인 사항

Windows용 dcert 빌드는 시스템 신뢰 저장소를 포함하지 않으므로, 기본 CA 세트(예: Windows 루트 인증서)에 없는 내부 CA 또는 사설 PKI에서 발급한 인증서를 검증할 때는 반드시 SSL_CERT_FILE 환경 변수를 통해 적절한 CA 번들을 지정해야 합니다. 이를 하지 않으면 인증서 검증이 실패하여 종료 코드 3을 반환합니다. 또한 MCP 서버 기능은 dcert-mcp 실행 파일을 별도로 사용해야 하며, 기본 dcert 명령에서는 제공되지 않습니다.

FAQ

  • dcert는 무료인가요?

    네, dcert는 MIT 라이선스 하에 오픈소스로 제공되며, 소스 코드는 GitHub에서 freely 이용할 수 있습니다.

  • Windows에서 dcert를 사용하려면 관리자 권한이 필요한가요?

    Chocolatey를 통한 설치는 관리자 권한이 필요하지만, ZIP 파일을 수동으로 다운로드하여 PATH에 추가하는 방식은 일반 사용자도 가능합니다. 다만, 시스템 전반에 영향을 주는 PATH 수정이 필요한 경우 관리자 권한이 요구될 수 있습니다.

  • dcert는 인터넷 연결이 필요한가요?

    기본 인증서 분석(로컬 PEM 파일)은 오프라인에서도 가능합니다. 그러나 HTTPS 엔드포인트 검사, OCSP 해지 확인(--check-revocation), 공개 루트 세트 갱신(--refresh-public-roots), 발급자 해결(--resolve-issuers)과 같은 기능은 네트워크 연결이 필요합니다. Vault 연동 기능 역시 Vault 서버에 대한 네트워크 접근이 필수입니다.

시스템 요구사항

Windows에서는 Chocolatey를 통해 설치할 수 있으며, 시스템에 OpenSSL 신뢰 저장소가 포함되지 않은 빌드이므로 인증서 검증 실패 시 SSL_CERT_FILE 환경 변수를 통해 CA 번들을 지정해야 합니다.