개발노트
고즐의 개발 및 서버 개발 노트아파치 SSL 인증서 충돌 해결기: 도메인마다 다른 인증서가 뜰 때 대처법
Server
2025.11.19 20 회 읽음
Server
15일 전 20 회 읽음
![]()
HTTPS 경고의 원인은? 인증서가 도메인과 다를 때 표시되는 경우가 많다. aibit.kr에 HTTPS 접속했는데, 갑자기 “주의 요함” 경고가 떴다.
확인해보니 더 황당한 문제였다. aibit.kr에 접속했는데 www.chr.kr 인증서가 적용되어 있었다.
이 문제는 SSL 인증서가 잘못 발급된 것이 아니라, Apache가 SSL 가상호스트(VirtualHost)를 잘못 로드한 것이 원인이었다. 나중에 보니 pem 설정하는 부분이 없는데 이상하게 다른 인증서를 참고해 버린다.
원인 분석: Apache는 conf.d 파일을 “알파벳 순서”로 로드 한다
Apache는 다음과 같은 순서로 설정 파일을 읽는다.
1. /etc/httpd/conf/httpd.conf
2. /etc/httpd/conf.d/*.conf (알파벳 순!)
그 결과 chr.kr SSL 설정 파일이 aibit.kr보다 먼저 로딩되면서
aibit.kr 접속 시 chr.kr 인증서가 기본값으로 적용된 것.
즉, SSL 가상호스트 충돌이었다.
해결 방법: SSL VirtualHost 파일 순서 정리
aibit.kr SSL vhost 파일이 뒤쪽에 있어서 Apache가 인식하지 못하고 있었다.
그래서 파일 이름을 맨 앞에 오도록 변경했다.
sudo mv /etc/httpd/conf.d/vhost-le-ssl.conf /etc/httpd/conf.d/00-aibit-ssl.conf sudo apachectl -t sudo systemctl restart httpd
SSL 인증서 확인
이제 정말 aibit.kr 인증서가 적용되고 있는지 확인한다.
echo | openssl s_client -connect aibit.kr:443 2>/dev/null | grep -i "DNS"
정상이라면 다음처럼 출력된다.
DNS:aibit.kr DNS:www.aibit.kr
최종 VirtualHost 설정(443)
가독성 높게, 한 블록으로 정리한 버전:
<VirtualHost *:443>
ServerName www.aibit.kr
ServerAlias aibit.kr
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.aibit.kr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.aibit.kr/privkey.pem
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^ https://www.aibit.kr%{REQUEST_URI} [L,R=301]
DocumentRoot /home/aibit/public_html
</VirtualHost>
결과: HTTPS 정상 적용
파일 순서만 잡아줬는데 HTTPS 경고가 사라지고
정상적인 SSL 인증서가 로딩 되었다.
여러 도메인을 운영하는 경우 Apache 설정이 꼬일 수 있으니
SSL VirtualHost 로딩 순서는 꼭 체크해야 한다.