전산쟁이의 기억노트

13. ssl모니터링방법 본문

카테고리 없음

13. ssl모니터링방법

잘나가는전산쟁이 2026. 8. 5. 02:27
728x90
반응형

Apache SSL 인증서 유효기한 모니터링

  • 본 문서는 Apache HTTP Server에 구성된 SSL/TLS 인증서의 유효기한을 Zabbix에서 모니터링하는 절차를 설명한다.
  • Zabbix 공식 권장 방식은 Website certificate by Zabbix agent 2 템플릿을 사용해 웹사이트 인증서를 조회하는 방법이다.
  • 이 방식은 Apache 서버 자체에 별도 스크립트를 배포하지 않아도 되며, Zabbix Agent 2가 설치된 감시 지점에서 대상 사이트의 인증서를 조회한다.

구성 개요

  • Zabbix Server 또는 Proxy: 수집 데이터 저장, 이벤트 평가, 알림 처리 담당.
  • Zabbix Agent 2: WebCertificate plugin을 이용해 대상 웹사이트의 인증서를 조회하는 컴포넌트.
  • Apache HTTPS endpoint: 실제 인증서가 바인딩된 서비스 대상.
  • 통신 포트:
    • Zabbix Server/Proxy -> Agent 2: 10050/tcp 또는 10051/tcp.
    • Agent 2 -> Apache HTTPS endpoint: 443/tcp.
  • 모니터링 대상은 Apache 프로세스 자체가 아니라, 외부에서 보이는 실제 HTTPS 인증서이다.

권장 방식

  • 공식 문서는 Website certificate by Zabbix agent 2 템플릿 사용을 안내한다.
  • 가장 일반적인 구성은 Zabbix Server 또는 별도 Probe 서버에 Agent 2를 설치하고, 그 Agent가 Apache 사이트의 인증서를 조회하는 방식이다.
  • 여러 사이트를 함께 감시할 경우 하나의 Agent 2 Host에서 여러 hostname과 port를 매크로로 지정할 수 있다.

사전 준비

  • 대상 Apache 사이트가 HTTPS로 정상 서비스 중이어야 한다.
  • 감시 지점 서버에 zabbix-agent2가 설치되어 있어야 한다.
  • Agent 2가 대상 Apache 사이트의 443/tcp에 접속 가능해야 한다.
  • Zabbix Web UI에서 Agent interface가 등록된 Host가 필요하다.

Agent 2 설치

  • RHEL 계열 예시는 다음과 같다.
  • 운영체제에 맞는 공식 저장소를 사용한다.
rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rhel/9/noarch/zabbix-release-latest.el9.noarch.rpm
dnf clean all
dnf install -y zabbix-agent2
  • 설치 후 서비스를 활성화한다.
systemctl enable --now zabbix-agent2

Agent 2 동작 확인

  • 공식 문서는 web.certificate.get[] 키로 인증서 조회 테스트를 안내한다.
  • 예시는 다음과 같다.
zabbix_get -s <ZABBIX_AGENT_IP> -k web.certificate.get[example.com]
  • 응답이 정상적으로 반환되면 Agent 2의 WebCertificate plugin이 동작하는 상태로 볼 수 있다.

Web UI 등록

  • Zabbix Web UI에서 기존 Host를 사용하거나, 인증서 모니터링 전용 Host를 생성한다.
  • Host에는 Agent interface를 추가한다.
  • Template에는 Website certificate by Zabbix agent 2를 연결한다.
  • Host group은 SSL/TLS Monitoring 같은 전용 그룹으로 분리하는 것이 좋다.

주요 매크로

  • 공식 문서에서 핵심으로 사용하는 매크로는 아래와 같다.
    • {$CERT.WEBSITE.HOSTNAME}
    • {$CERT.WEBSITE.IP}
    • {$CERT.WEBSITE.PORT}
    • {$CERT.EXPIRY.WARN}

예시 값

{$CERT.WEBSITE.HOSTNAME}=www.example.com
{$CERT.WEBSITE.IP}=
{$CERT.WEBSITE.PORT}=443
{$CERT.EXPIRY.WARN}=30
  • {$CERT.WEBSITE.IP}는 비워 두면 일반적으로 hostname 기준으로 조회한다.
  • 여러 사이트를 한 번에 감시하려면 {$CERT.WEBSITE.HOSTNAME}에 콤마로 구분한 hostname 목록을 넣을 수 있다.
  • 이 경우 {$CERT.WEBSITE.PORT}도 순서에 맞게 콤마 구분 포트 목록으로 설정할 수 있다.

수집 항목 예시

  • 인증서 만료일.
  • 인증서 남은 일수.
  • Subject / Issuer 정보.
  • Serial number, fingerprint, SAN 정보, 템플릿 구성에 따라 다름.
  • 인증서 조회 실패 여부.

트리거 구성

  • 공식 템플릿은 인증서 만료가 가까워질 때 문제를 발생시키는 트리거를 포함한다.
  • 일반적으로 {$CERT.EXPIRY.WARN} 값을 기준으로 경고를 발생시킨다.
  • 예를 들어 30으로 설정하면 만료 30일 전에 경고 이벤트를 발생시킬 수 있다.

Apache 구성 관점 참고

  • 이 방식은 Apache 설정 파일 내부를 직접 읽는 방식이 아니라, 실제 서비스 중인 HTTPS endpoint의 인증서를 검사한다.
  • 따라서 Apache가 reverse proxy 뒤에 있거나 LB 뒤에 있어도, 실제 접속 대상 URL 기준으로 인증서를 점검할 수 있다.
  • 가상호스트별 인증서가 다르면 hostname 단위로 개별 등록하는 것이 좋다.

방화벽 및 접근 제어

  • Agent 2는 대상 Apache HTTPS endpoint의 443/tcp에 접근 가능해야 한다.
  • Zabbix Server/Proxy와 Agent 간에는 기존 Agent 정책에 따라 10050/tcp 또는 10051/tcp가 필요하다.
  • 외부 공개 사이트 인증서는 내부 Agent 2 대신 Zabbix Server 또는 DMZ Probe Host에서 조회하는 구성이 실무에서 편하다.
  • SNI가 필요한 환경에서는 hostname을 정확히 지정해야 한다.

대용량 운영 추천값

  • 다수의 Apache 사이트를 감시할 경우 인증서 전용 Host를 별도로 만드는 편이 관리가 쉽다.
  • 여러 사이트를 한 Host에 몰아넣는 방식도 가능하지만, 운영상 중요 사이트는 Host를 분리하는 것이 알람 추적에 유리하다.
  • 추천 시작 기준은 아래와 같다.
항목 추천값
템플릿 Website certificate by Zabbix agent 2
감시 방식 Agent 2 WebCertificate plugin
기본 포트 443
경고 임계값 {$CERT.EXPIRY.WARN}=30
Host 구성 중요 사이트는 개별 Host, 일반 사이트는 그룹 Host 가능
감시 위치 Zabbix Server, Proxy, 또는 별도 Probe Host

구방식 참고

  • 과거에는 openssl s_client 기반 외부 스크립트나 UserParameter 방식이 많이 사용되었다.
  • 현재는 공식 Website certificate by Zabbix agent 2 템플릿 사용이 더 단순하고 유지보수도 쉽다.
  • 기존 스크립트 기반 방식은 즉시 제거하기보다 공식 템플릿으로 단계적으로 전환하는 것이 현실적이다.

점검 항목

  • zabbix-agent2 서비스가 정상 실행 중인지 확인한다.
  • web.certificate.get[] 키 테스트가 성공하는지 확인한다.
  • {$CERT.WEBSITE.HOSTNAME} 값이 실제 접속 가능한 Apache HTTPS hostname과 일치하는지 확인한다.
  • SNI, DNS, 방화벽, 프록시 경유 여부는 가장 흔한 실패 원인이므로 우선 점검한다.
  • 템플릿 연결 후 Latest data에 인증서 관련 항목이 들어오는지 확인한다.

운영 팁

  • 인증서 만료일만 보지 말고 Apache availability, 응답시간, HTTP status code와 함께 묶어서 감시하는 것이 좋다.
  • 와일드카드 인증서나 멀티 도메인 인증서는 SAN 정보까지 함께 확인하는 편이 안전하다.
  • LB, CDN, WAF 뒤에 있는 사이트는 실제 최종 사용자 관점에서 보이는 인증서를 감시하도록 URL을 정해야 한다.
  • 먼저 중요 대외 서비스부터 적용하고, 이후 내부 포털과 관리 사이트로 확대하는 방식이 안정적이다.
728x90
반응형
Comments