SSL 인증서 및 ServBay CA 문제 해결
이 문서는 ServBay 로컬 개발 환경에서 SSL 인증서 및 ServBay CA와 관련된 일반적인 문제와 해결 방법을 안내합니다.
브라우저에서 SSL 인증서가 신뢰되지 않는다는 메시지가 뜨는 이유는?
ServBay를 통해 호스팅된 로컬 웹사이트에 브라우저로 접속할 때, 다음과 같은 경고 메시지가 표시되는 경우가 있습니다. 이는 SSL 인증서 설정에 문제가 있다는 의미입니다.
- Chrome / Edge:
Your connection is not private
(연결이 안전하지 않습니다)- 오류 코드:
NET::ERR_CERT_AUTHORITY_INVALID
- 오류 코드:
NET::ERR_CERT_COMMON_NAME_INVALID
(자주 발생하지 않지만, 인증서와 도메인이 일치하지 않을 때 나타날 수 있음)
- Firefox:
Warning: Potential Security Risk Ahead
(경고: 잠재적 보안 위험이 있습니다)- "고급" 버튼을 클릭하면
SEC_ERROR_UNKNOWN_ISSUER
라는 오류 코드를 볼 수 있음 - 오류 코드:
SSL_ERROR_BAD_CERT_DOMAIN
(인증서와 도메인이 일치하지 않을 때)
- Safari:
This Connection Is Not Private
(이 연결은 안전하지 않습니다)Safari can't verify the identity of the website "your-domain.test"
(Safari가 웹사이트 “your-domain.test”의 신원을 확인할 수 없습니다)
이러한 문제가 발생하는 가장 흔한 원인은 ServBay User CA
와 ServBay Public CA
가 제대로 설치되어 신뢰되지 않기 때문입니다. 이는 다음과 같은 원인에서 발생할 수 있습니다:
- ServBay의 루트 인증서가 시스템 신뢰 목록에 추가되지 않은 경우
- MAMP, Laravel Herd 등 다른 로컬 개발 환경에서 같은 도메인(예:
myapp.test
)을 사용했거나, 해당 툴의 인증서와 ServBay 인증서가 충돌했거나 자체 인증서 시스템에 문제가 있어, 브라우저가 잘못된 신뢰 정보를 캐싱한 경우
해결방법
아래 단계대로 진행하세요:
- ServBay를 실행합니다
- 설정(Settings) 메뉴에서 ServBay Root CA 부분을 찾습니다.
- ServBay Root CA 재설치(Reinstall ServBay Root CA) 버튼을 클릭합니다. ServBay가 자동으로 루트 인증서 설치 및 신뢰 문제를 복구합니다.
- 브라우저를 완전히 종료 후 다시 실행합니다(모든 창과 프로세스를 잘 닫아야 SSL 캐시가 초기화됩니다).
- 다시 웹사이트를 접속합니다. 이제 SSL 인증서 오류가 해결되어야 합니다.
문제가 계속되는 경우:
시스템에 오래된, 충돌되는 또는 유효하지 않은 인증서가 남아있을 수 있습니다. 특히 이전에 MAMP나 Herd 등에서 같은 도메인을 위한 인증서가 생성된 경우 문제가 발생할 수 있습니다.
- 시스템의 인증서 관리 도구를 엽니다:
- macOS: 키체인 접근(Keychain Access) 앱 실행(“응용 프로그램” > “유틸리티”에서 찾을 수 있습니다)
- Windows: Win+R 키를 누르고
certmgr.msc
입력 후 엔터키로 인증서 관리기를 엽니다.
- 검색창에 문제 도메인을 입력합니다(예:
myapp.test
, 또는 모르겠을 경우mamp
,herd
등 키워드로 검색). - 상단의 “종류”에서 **인증서(Certificates)**를 선택합니다.
- 검색 결과에서 해당 도메인 관련 모든 SSL 인증서를 찾습니다. “발급자(Issuer)”가
ServBay User CA
,MAMP Development CA
,Laravel Herd CA
또는 유사명인지 확인하세요. - 문제 도메인 관련 인증서(특히,
ServBay User CA
가 아닌 발급자 또는 의심스러운 인증서)를 선택하고Delete
키로 삭제합니다. 시스템 비밀번호 입력이 필요할 수 있습니다. 로컬 개발 도메인과 관련 있는 인증서만 신중히 삭제하세요. - (선택사항, 권장)
ServBay User CA
및ServBay Public CA
도 키체인/인증서 관리에서 검색해 인증서가 존재하며, 아이콘에 빨간 X 표시(신뢰 안 됨)가 없는지 확인하세요. 신뢰 안 됨(빨간 X)이면 인증서 더블클릭 → “신뢰(Trust)” 섹션 → “이 인증서를 사용할 때(When using this certificate)”를 “항상 신뢰(Always Trust)”로 변경하세요. - 다시 ServBay 앱으로 돌아갑니다.
- 설정(Settings) > ServBay Root CA로 이동합니다.
- 모든 ServBay User 인증서 재생성(Recreate All ServBay User Certificates) 버튼을 클릭합니다. ServBay관리 웹사이트의 SSL 인증서를 새로 생성합니다.
- 컴퓨터 재시작. 모든 서비스와 시스템이 최신 인증서 및 신뢰 설정을 적용합니다.
- 브라우저를 다시 열고 웹사이트 접속을 시도하세요.
이런 오류 메시지 예시를 참고해 더 빠르게 본인의 문제가 SSL 인증서 신뢰와 관련되어 있는지 판단하고 바로 해결 방법을 찾을 수 있습니다.
SSL 인증서가 분실됐을 때 어떻게 해야 하나요?
ServBay로 로컬 웹사이트 개발 시, 웹사이트의 SSL 인증서 파일이 실수로 삭제되어 버리는 경우가 있습니다. 이 경우 Nginx, Caddy, Apache 등 웹 서버가 실행되지 않거나 정상적으로 웹사이트를 로딩하지 못하고, 인증서 파일 관련 오류가 로그에 남게 됩니다.
증상 설명
ServBay가 자동 발급한 SSL 인증서 파일(.crt
와 .key
)이 사라지면, 웹 서버의 오류 로그에 다음과 같은 메시지가 뜰 수 있습니다. 이는 서버가 지정한 인증서 파일 경로를 찾지 못하거나 읽을 수 없다는 의미입니다.
다음은 일반적인 오류 예시입니다:
Nginx 오류 예시:
log
nginx: [emerg] cannot load certificate "/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt, r) error:10000080:BIO routines::no such file)
nginx: configuration file /Applications/ServBay/package/etc/nginx/nginx.conf test failed
1
2
2
Caddy 오류 예시:
log
Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/servbay.host/ser3vbay.host.crt: no such file or directory
1
Apache 오류 예시:
log
AH00526: Syntax error on line 15 of /Applications/ServBay/package/etc/apache/vhosts/servbay.host.conf:
SSLCertificateFile: file '/Applications/ServBay/ssl/pri3vate/tls-certs/servbay.host/servbay.host.crt' does not exist or is empty
1
2
2
공통적으로, 서버 설정에 지정된 SSL 인증서 파일 경로가 존재하지 않거나 접근할 수 없음을 나타냅니다.
해결방법
ServBay가 자동 발급하는 로컬 웹사이트 인증서 관련 문제는 ServBay의 자동 탐지 및 재발급 기능으로 쉽게 복구할 수 있습니다.
다음 순서대로 진행하세요:
- ServBay 앱 실행: ServBay 앱이 실행 중인지 확인합니다.
- 웹사이트 목록 이동: ServBay 앱 좌측 메뉴에서 웹사이트 버튼을 클릭합니다.
- 문제 웹사이트 선택: 인증서 분실 문제가 발생한 로컬 사이트를 목록에서 찾아 선택합니다.
- 자동 탐지 및 재발급: 사이트 설정을 읽는 과정에서 ServBay가 관련 SSL 인증서 파일(예:
.crt
또는.key
)의 존재를 자동으로 확인하고, 분실된 경우 새 인증서를 자동으로 재발급하여 올바른 경로(/Applications/ServBay/ssl/private/tls-certs/도메인/
)에 배포합니다. - 웹 서버 재시작: 인증서 파일이 재생성‧배포된 뒤, 해당 웹사이트를 서비스하는 웹 서버(Nginx, Caddy, Apache 등)를 재시작해야 새 인증서를 불러올 수 있습니다. 좌측 메뉴에서 소프트웨어 패키지로 이동한 뒤, 사용하는 웹 서버의 오른쪽 재시작 버튼(일반적으로 원형 화살표 아이콘)을 클릭하세요.
- 문제 해결 확인: 웹 서버 재시작 후, 브라우저로 HTTPS로 로컬 웹사이트 접속(예:
https://도메인
)을 시도하여 문제가 해결됐는지 확인합니다.
참고사항
- 이 방법은 ServBay가 자동으로 발급한 인증서에 해당합니다. 직접 수동으로 등록한 커스텀 인증서의 경우 분실 시 ServBay가 자동 복구하지 않으므로 직접 찾아서 임포트해야 합니다.
- ServBay는 내장한 ServBay User CA로 SSL 인증서를 발급해 로컬 환경에서 HTTPS를 사용하게 해줍니다. 로컬 HTTPS 접속 시 인증서 신뢰 경고가 계속 발생한다면, ServBay User CA가 운영체제나 브라우저에서 신뢰되지 않은 것일 수 있습니다. ServBay CA를 신뢰하는 방법 문서를 참고해 설정하세요.
- ServBay는 웹사이트 설정과 SSL 인증서를 포함한 데이터 백업 기능을 제공합니다. 정기적으로 백업을 수행하면 예기치 못한 문제 발생 시 빠르게 복원할 수 있습니다.
자주 묻는 질문 (FAQ)
Q: ServBay가 왜 로컬 웹사이트 SSL 인증서를 자동으로 발급하나요?
A: ServBay는 완벽한 로컬 개발 환경을 지향하기 때문입니다. 운영 환경을 그대로 모사하고 개발자가 HTTPS 앱을 디버그할 수 있도록 내장된 ServBay User CA로 로컬 웹사이트 SSL 인증서를 자동 발급하여 HTTPS 접속을 지원합니다.
Q: 내가 직접 신청한 SSL 인증서를 사용할 수 있나요?
A: 네, ServBay는 ACME, Let's Encrypt 등에서 발급받은 SSL 인증서를 직접 가져와 사용할 수 있습니다. 본 문서의 안내는 ServBay가 자동으로 생성한 인증서만을 대상으로 합니다.
Q: 재발급된 인증서는 안전한가요?
A: 네, 로컬 개발에 필요한 인증서만 ServBay User CA로 서명되어 발급됩니다. 외부 인터넷에서 웹사이트의 실제 보안에는 영향을 주지 않습니다.
요약
ServBay는 로컬 개발 환경 SSL 인증서 관리를 간편하게 할 수 있는 기능을 제공합니다. ServBay가 자동으로 생성한 로컬 웹사이트용 SSL 인증서가 실수로 분실됐을 때, 간단한 단계를 통해 ServBay가 자동으로 탐지 후 재발급해 주므로 손쉽게 로컬 HTTPS 접속을 복구할 수 있습니다.