목적
홈넷 서버와의 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. 재발급과 홈넷사 전달
발급은 우리 시스템에서 하지만, 홈넷사가 자기 정보를 가지고 재발급을 요청해야 발급할 수 있음. 우리가 먼저 만료를 발견해도 멋대로 재발급하지 않음.
- 홈넷사 담당자에게 만료 사실을 알리고 재발급을 요청해 달라고 연락할 것. 함께 보낼 것:
- 만료 사실과
NotAfter일시 - 에러 로그(
CertificateExpiredException포함) - 영향받는 단지 목록
- 만료 사실과
- 홈넷사의 재발급 요청이 오면 인증서 발급 이력 테이블(
tb_tlscrtf_pblc_l)에서 갱신 날짜를 확인할 것. - 관리자 시스템에서 인증서를 재발급할 것. 절차는 기본매뉴얼/운영/홈넷 서버 연동 (인증서 발급).
- 새 TLS 인증서를 홈넷사에 전달할 것. 홈넷사가 자기 서버에 적용해야 끝남.
5. 정상화 확인
- 2번 명령으로
notAfter가 연장됐는지 볼 것. - 앱에서 기기 제어를 한 번 해 볼 것.
- WAS 로그에 SSL 오류가 더 안 찍히는지 볼 것.
확인
- 로그에서
CertificateExpiredException을 봄 - 프록시 경유로
notAfter를 확인함 - 홈넷사에 만료 일시·로그·단지 목록·새 인증서를 보냄
- 갱신 후
notAfter가 연장됐고 제어가 됨
예방
- 홈넷사별 인증서 만료일을 표로 관리하고 30일 전에 갱신을 요청함. 기본매뉴얼/운영/정기 점검 체크리스트의 월간 항목임.
- 스크립트를 cron으로 돌려 30일 전 경고를 받는 방법이 있음.
ssl_cert_check.sh의WARN_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 기기가 없다고 떠요 기본매뉴얼/운영/정기 점검 체크리스트