SSL 인증서 만료 에러 해결하는 법: 확인부터 교체와 재로드까지

SSL 인증서 만료 에러 해결 방법을 정리했습니다. 인증서 만료일과 체인, 서버 시각을 확인하고 새 인증서 교체, Nginx·Apache 재로드까지 단계별로 안내합니다. SSL 인증서는 웹사이트와 브라우저 사이의 암호화 통신을 확인하는 전자 문서입니다.

목차

이 글은 Linux 서버에서 Nginx 또는 Apache를 사용하고, 인증서 파일과 웹서버 설정을 수정할 권한이 있다고 가정합니다. 도메인 관리 화면에서 새 인증서를 발급받았지만, 파일 경로와 서버 종류는 환경마다 다르므로 실제 설정값을 먼저 확인하세요.

만료 원인과 사전 조건

본문에서는 TLS 인증서(흔히 SSL 인증서라고 부름)라는 표현을 사용하겠습니다. 실제 만료는 자동 갱신 실패, 인증 기관(CA) 문제, 수동 갱신 누락 등으로 발생할 수 있습니다. 인증서의 유효 기간이 지나면 브라우저에 경고가 표시되고, 자동화된 API 요청도 TLS 연결 오류로 중단될 수 있습니다.

인증서가 만료되지 않았는데 오류가 난다면 서버의 시스템 시각을 먼저 점검하세요. Linux에서는 다음 명령으로 현재 시각과 동기화 상태를 확인할 수 있습니다.

date
timedatectl status

시각이 실제 시간과 크게 다르면 NTP 동기화 상태를 복구한 뒤 다시 테스트합니다. 서버 시간이 미래나 과거로 설정된 경우 정상 인증서도 만료 또는 아직 유효하지 않은 것으로 판단될 수 있습니다.

인증서 상태 확인

브라우저 화면만으로는 중간 인증서 누락 여부를 구분하기 어렵습니다. 서버가 실제로 내보내는 인증서의 만료일과 발급자를 다음처럼 확인하세요.

openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

notAfter는 만료일, issuer는 발급자입니다. 체인(서버 인증서와 중간 인증서가 연결된 구조)까지 검증하려면 다음 명령으로 오류가 표시되는지 확인합니다.

openssl s_client -connect example.com:443 -servername example.com -verify_return_error </dev/null

체인 검증 오류가 나오면 서버 인증서만 교체하고 중간 인증서를 빠뜨렸을 가능성이 있습니다. 발급 기관이 제공한 체인 포함 파일을 사용하고, 명령 결과의 Verify return code를 다시 확인하세요.

인증서 교체와 웹서버 재로드

먼저 새 인증서, 개인 키, 체인 파일의 저장 위치와 권한을 확인합니다. 기존 파일을 바로 덮어쓰기보다 새 파일을 별도 경로에 저장한 뒤 설정의 ssl_certificatessl_certificate_key 경로를 새 파일로 바꾸는 편이 복구하기 쉽습니다.

Nginx는 설정 문법을 검사한 뒤 재로드합니다. Apache는 배포판에 따라 서비스 이름이 다를 수 있습니다. Ubuntu·Debian 계열에서는 보통 apache2, RHEL·CentOS 계열에서는 보통 httpd를 사용하므로 현재 실행 중인 서비스 이름을 확인한 후 명령을 적용합니다.

sudo nginx -t
sudo systemctl reload nginx

sudo apachectl configtest
sudo systemctl reload apache2

재로드가 실패하면 인증서와 키의 짝이 맞지 않거나 파일 권한이 부족한 경우가 많습니다. 인증서와 개인 키의 공개 키가 일치하는지는 다음처럼 비교할 수 있으며, 차이가 없으면 두 출력이 같은 것입니다: diff <(openssl x509 -in cert.pem -pubkey -noout) <(openssl pkey -in privkey.pem -pubout). nginx -t 또는 apachectl configtest의 오류 줄과 서비스 로그도 확인하고, 재로드 후에도 이전 만료일이 보이면 실제로 연결된 가상 호스트 설정과 인증서 경로를 다시 점검하세요.

진단 방법 비교

비교 항목 브라우저 확인 OpenSSL 확인 웹서버 로그 확인
확인 대상 사용자 경고 인증서와 체인 설정·권한 오류
장점 가장 간단함 실제 전송 인증서 확인 재로드 실패 원인 파악
선택 기준 빠른 1차 점검 만료·체인 분석 설정 변경 직후 오류
한계 원인 구분이 어려움 명령 사용법 필요 인증서 상태를 직접 보여주지 않음

단순 만료 여부는 브라우저로 시작하고, 갱신했는데 경고가 남으면 OpenSSL을 사용하세요. 재로드 명령 자체가 실패한 상황에서는 로그와 설정 검사 결과를 우선 확인하는 방식이 효율적입니다.

자주 묻는 질문

인증서를 갱신했는데 브라우저에 이전 만료일이 보이는 이유는 무엇인가요?

새 파일을 서버에 복사하고 재로드했는데도 이전 만료일이 보인다면, 접속한 주소 앞단의 CDN, 로드밸런서, 리버스 프록시 같은 다른 TLS 종단점이 이전 인증서를 제공하는지 확인하세요. OpenSSL로 외부에서 실제 응답 인증서를 확인한 뒤, 해당 종단점의 인증서 설정과 배포·재로드 상태를 점검합니다.

인증서 체인 오류는 만료와 같은 문제인가요?

아닙니다. 만료는 유효 기간 문제이고, 체인 오류는 브라우저가 발급자를 신뢰하도록 연결하는 중간 인증서가 없거나 잘못된 경우입니다. 체인 포함 인증서를 설정하고 검증 명령을 다시 실행하세요.

재부팅과 웹서버 재로드는 같은가요?

같지 않습니다. 재로드는 실행 중인 웹서버가 설정과 인증서를 다시 읽게 하는 작업이며, 인증서 교체만으로는 서버 전체 재부팅이 필요하지 않은 경우가 많습니다.

결론

SSL 인증서 만료 에러는 만료일, 서버 시각, 인증서 체인을 순서대로 확인하면 원인을 좁힐 수 있습니다. 새 인증서를 적용한 뒤 설정 검사와 웹서버 재로드, 실제 응답 인증서 확인까지 마쳐야 교체가 끝납니다.