SSL 인증서를 정상적으로 설치했는데도 브라우저에서는 안전하지 않음 또는 이전 인증서가 보이는 경우가 가끔 있어요.
왜 안전하지 않음이라고 뜨냐면, 인증서를 잘못 설치해서가 아니라, 캐시,설정,배포하는 과정에서 중간에 꼬여서 그래요
SSL 인증서 적용 후 브라우저에서 안 되는 이유와 해결 방법을 이해하기 쉽게 알려드리겠습니다!
브라우저 캐시 문제
가장 흔한 건 캐시 때문에 그래요!
브라우저는 SSL 인증서 정보도 일정 시간동안 계속 캐싱을 하기 때문에 이미 갱신된 인증서가 있어도 갱신 전 상태를 계속 보여줄 수 있답니다.
해결 방법
- 강력 새로고침 (Ctrl + Shift + R)
- 시크릿 모드에서 접속 확인
- 브라우저 캐시 삭제
다른 브라우저나 모바일에서 테스트해보면 빠르게 확인할 수 있어요!
CDN 캐시 문제
CDN을 쓰고 있다면, 인증서가 서버가 아니라 CDN 레이어에 적용되어 있을 수 있어요.
이럴 때는 원본 서버에서는 정상인데 사람들한테는 전에 사용하던 인증서가 보여요.
해결 방법
- CDN 캐시 전체 삭제
- SSL 설정 모드 확인
- CDN 인증서 상태 확인
인증서 체인 누락
SSL 인증서는 단일 파일이 아니여서 루트 – 중간 – 서버 인증서 구조로 연결돼요.
이 중간 인증서가 빠지면 일부 브라우저에서 인증서를 신뢰하지 못하는 상태가 되버립니다!
확인 방법
- openssl s_client -connect 도메인:443
출력 결과에서 인증서 체인이 정상적으로 연결되어 있는지 확인하시면 돼요.
해결 방법
- fullchain.pem 사용
- 인증서 설치 시 체인 파일 포함
Nginx 설정 오류
인증서를 설치했어도 Nginx 설정이 제대로 안 되어 있으면 오류가 날 수 있어요.
제가 전 글에서도 말씀드렸듯이 Nginx 설정은 잘 해놓으셔야 해요!
확인해야 할 설정
server {
listen 443 ssl;
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/private.key;
}
복사 붙여넣기 하셔도 무관합니다!
적용 후 필수 작업
- sudo nginx -t
- sudo systemctl reload nginx
아 참고로 리로드없이 설정만 바꾸면 반영이 안 돼요!! 모르시는 분들이 정말 많아요. 꼭 알아두세요!
HTTP, HTTPS 리다이렉트 문제
HTTPS 설정이 정상적으로 되도, HTTP 요청이 제대로 안 넘어가면 사람들한테 계속 보안창이 떠요.
해결 방법
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
조금 어려울 수 있으니 제거 복사 붙여넣기 하셔도 돼요!
서버 여러 대 운영 시 인증서 불일치
로드밸런서나 여러 서버를 돌리고 있을 때 일부 서버에서만 인증서가 올라가 있을 수 있어요.
일부 서버에만 인증서가 올라가면 어떤 사람한테는 정상으로 보이고 어떤 사용자한테는 이전 인증서가 떠요.
해결 방법
- 모든 서버에 같은 인증서 배포
- 로드밸런서 SSL 설정 확인
마무리
SSL 인증서가 브라우저에 안 잡히는 문제는 단순 설정 실수 때문에 그런게 아니라 캐시, 네트워크, 인증서 구조, 서버 구성까지 여러 문제가 꼬여서 그런 경우가 대다수에요.
만약 문제가 생겨서 정말 급하다 싶으면 아래 순서로 한 번 해보세요! 제가 간략하게 정리해놨어요.
- 브라우저 캐시 확인
- CDN 캐시 여부 확인
- 인증서 체인 점검
- Nginx 설정 및 재적용
- 리다이렉트 설정 확인
- 서버 구성 점검
SSL은 보안이 기본이여서 문제가 생겼을 때는 원인을 최대한 빨리 찾아서 해결하는 게 가장 중요하답니다!
오늘도 글 읽어주셔서 감사드려요!