목적

홈넷 서버와의 HTTPS 통신이 인증서 만료로 끊겼는지 확인하고, 재발급까지 처리함. 특징은 한 단지가 아니라 그 홈넷사의 모든 단지에서 동시에 기기 제어·조회가 안 된다는 것임. 인증서 유효기간이 1년이라 매년 같은 시기에 재발함.

사전 준비

  • 운영 WAS 접속 권한
  • Squid 프록시 주소. 홈넷 서버는 외부망이라 프록시를 거쳐야 닿음. 주소는 서버의 /home/smah/scripts/ssl_cert_check.sh 사용 예시에 있거나 담당자에게 물음. 위키에는 적지 않음
  • CA 인증서 경로: /smahshare/svr_cert/ca_cert/lh-smah-ca-2024-cert.pem
  • 홈넷 서버 IP와 포트(보통 8094), 컨텍스트 경로. 관리자 시스템 홈넷 서버 관리에서 봄

절차

1. 로그로 원인 특정

WAS 로그에서 아래 문구를 찾음. 로그 보는 법은 기본매뉴얼/운영/WAS 로그 확인.

grep -i "SSLHandshakeException\|CertificateExpiredException\|PKIX" catalina.out | tail -20

만료면 이런 체인이 찍힘. NotAfter 값이 만료 시각임.

SSLHandshakeException: PKIX path validation failed
  └ CertPathValidatorException: validity check failed
      └ CertificateExpiredException: NotAfter: Wed Feb 11 17:28:11 KST 2026

PKIX path building failed(building)는 만료가 아니라 홈넷사가 우리 인증서를 등록하지 않은 것임. 신규 단지에서 나오며 기본매뉴얼/관리사무소/새로 연동한 단지의 단말기 조회가 안 돼요를 따름. validation failed(validation)가 만료임.

2. 인증서 만료일 직접 확인

프록시를 거치지 않으면 타임아웃만 남. -proxy 옵션은 openssl 1.1.0 이상에서 됨.

# 만료일만
echo | openssl s_client -connect [홈넷서버IP]:8094 -proxy [프록시host:port] 2>&1 | openssl x509 -noout -dates

# curl로
curl -vk --proxy http://[프록시host:port] https://[홈넷서버IP]:8094/ 2>&1 | grep -A 5 "Server certificate"

notAfter가 오늘보다 이전이면 만료임.

3. 종합 점검 스크립트

서버의 /home/smah/scripts/ssl_cert_check.sh를 씀. 원본은 첨부/ssl_cert_check.sh에 있음. 스크립트를 고치면 원본 → 서버 순서로 반영함.

./ssl_cert_check.sh [홈넷서버IP]/[컨텍스트경로] 8094 /smahshare/svr_cert/ca_cert/lh-smah-ca-2024-cert.pem [프록시host:port]

점검 순서는 네트워크 연결 → 로컬 CA 만료일 → SAN 검증 → 서버 인증서 원격 확인 → HTTPS 통신 테스트 → 요약임. 요약이 이렇게 나오면 재발급 대상임.

  로컬 CA:   🟢 245일 남음
  서버 인증서: 🔴 만료됨 (13일 전) ← 재발급 필요!
  통신 결과: ❌ 실패

curl 종료 코드 60이 인증서 만료·CA 체인 불일치, 28이 타임아웃(프록시 미경유 또는 방화벽), 51이 CN/SAN 불일치임.

4. 재발급과 홈넷사 전달

발급은 우리 시스템에서 하지만, 홈넷사가 자기 정보를 가지고 재발급을 요청해야 발급할 수 있음. 우리가 먼저 만료를 발견해도 멋대로 재발급하지 않음.

  1. 홈넷사 담당자에게 만료 사실을 알리고 재발급을 요청해 달라고 연락할 것. 함께 보낼 것:
    • 만료 사실과 NotAfter 일시
    • 에러 로그(CertificateExpiredException 포함)
    • 영향받는 단지 목록
  2. 홈넷사의 재발급 요청이 오면 인증서 발급 이력 테이블(tb_tlscrtf_pblc_l)에서 갱신 날짜를 확인할 것.
  3. 관리자 시스템에서 인증서를 재발급할 것. 절차는 기본매뉴얼/운영/홈넷 서버 연동 (인증서 발급).
  4. 새 TLS 인증서를 홈넷사에 전달할 것. 홈넷사가 자기 서버에 적용해야 끝남.

5. 정상화 확인

  1. 2번 명령으로 notAfter가 연장됐는지 볼 것.
  2. 앱에서 기기 제어를 한 번 해 볼 것.
  3. WAS 로그에 SSL 오류가 더 안 찍히는지 볼 것.

확인

  • 로그에서 CertificateExpiredException을 봄
  • 프록시 경유로 notAfter를 확인함
  • 홈넷사에 만료 일시·로그·단지 목록·새 인증서를 보냄
  • 갱신 후 notAfter가 연장됐고 제어가 됨

예방

  • 홈넷사별 인증서 만료일을 표로 관리하고 30일 전에 갱신을 요청함. 기본매뉴얼/운영/정기 점검 체크리스트의 월간 항목임.
  • 스크립트를 cron으로 돌려 30일 전 경고를 받는 방법이 있음. ssl_cert_check.shWARN_DAYS 값이 그 기준임.
  • Java 쪽에서 상세 SSL 로그가 필요하면 Tomcat JVM 옵션에 -Djavax.net.debug=ssl,handshake를 넣음.

사례

일자범위상황조치
2026-02-11해당 홈넷사 전체 단지인증서 만료(NotAfter: 2026-02-11 17:28 KST)로 제어·조회 전면 실패인증서 재발급 후 정상화
2026-04-30관악봉천3로그 SSL 인증서 확인 실패재발급 후 홈넷사 전달

관련

기본매뉴얼/운영/홈넷 서버 연동 (인증서 발급) 공개노트/기능/홈넷 서버 연동 기본매뉴얼/운영/WAS 로그 확인 기본매뉴얼/입주민/검색된 IoT 기기가 없다고 떠요 기본매뉴얼/운영/정기 점검 체크리스트