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) 앱을 실행합니다. (
응용 프로그램
>유틸리티
에서 찾을 수 있습니다) - 오른쪽 상단 검색창에 문제가 발생한 도메인명(예:
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 인증서가 재발급됩니다.
- Mac을 재시작합니다. 최신 인증서 및 신뢰 설정이 반영될 수 있도록 시스템 컴포넌트를 초기화합니다.
- 브라우저를 재실행해서 사이트 접속을 다시 시도하세요.
이러한 오류 메시지 예시를 참고하면, 사용자가 현재 문제의 원인이 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 앱이 실행 중이어야 합니다.
- 사이트 목록으로 이동: 앱 좌측 네비게이션의 사이트를 클릭합니다.
- 문제가 생긴 사이트 선택: 목록에서 SSL 인증서 분실 문제가 발생한 로컬 사이트를 선택합니다.
- 자동 감지 및 재발급: ServBay는 해당 사이트 설정을 읽을 때 필요한 SSL 인증서가 있는지 자동 점검합니다. 인증서(
.crt
또는.key
파일)가 없으면 즉시 새로 발급,/Applications/ServBay/ssl/private/tls-certs/도메인명/
경로에 설치합니다. - 웹서버 재시작: 인증서 재생성 후 사이트가 사용하는 Nginx, Caddy, Apache 웹서버 패키지를 재시작해야 합니다. 좌측 소프트웨어 패키지 메뉴에서 사용 중인 서버의 "재시작" 버튼(회전 화살표 아이콘)을 클릭합니다.
- 문제 해결 확인: 서버가 성공적으로 재시작되면, 브라우저에서
https://도메인명
으로 연결이 정상 작동하는지 확인하세요.
참고사항
- 이 방법은 ServBay가 자동으로 발급한 로컬용 SSL 인증서에만 해당됩니다. 직접 가져온 커스텀 인증서를 사용하는 경우 분실해도 ServBay에서 자동 재발급하지 않으니, 수동 복구 또는 재발급 후 직접 파일을 등록해야 합니다.
- ServBay는 자체
ServBay User CA
를 통해 로컬 사이트 인증서를 발급해 로컬 HTTPS 환경을 지원합니다. 만약 브라우저에서 인증서를 신뢰하지 않는 경고가 계속된다면, OS 또는 브라우저에서 ServBay User CA가 신뢰받지 않아 생긴 문제일 수 있습니다. ServBay CA 신뢰 설정 문서를 참고해주세요. - ServBay는 사이트 설정과 SSL 인증서를 포함한 데이터 백업 기능을 제공합니다. 정기적으로 백업해두면 예상치 못한 사고 시 빠른 복구가 가능합니다.
자주 묻는 질문 (FAQ)
Q: ServBay에서 왜 자동으로 SSL 인증서를 발급하나요?
A: ServBay의 목적은 완전한 로컬 개발 환경을 제공하는 데 있습니다. 실서버와 유사한 환경에서 HTTPS 개발 및 디버깅을 쉽게 할 수 있도록, ServBay는 내장된 ServBay User CA를 이용해 사용자가 만든 로컬 사이트에 자동으로 SSL 인증서를 발급합니다.
Q: 직접 받은 SSL 인증서도 사용할 수 있나요?
A: 네, ServBay는 사용자가 ACME / Let’s Encrypt 등에서 발급받은 SSL 인증서를 직접 등록해 사용할 수 있습니다. 이 안내문은 ServBay가 자동 생성하는 인증서에만 해당합니다.
Q: 인증서를 재발급해도 안전한가요?
A: 네, 로컬 개발 환경에서는 문제가 없습니다. ServBay가 재발급하는 인증서는 ServBay User CA가 서명한 개발/테스트용으로만 쓰이며, 퍼블릭 웹 보안에는 영향을 주지 않습니다.
요약
ServBay는 로컬 개발 환경의 SSL 인증서 관리 기능을 제공하고, 자동 발급된 인증서가 분실되어도 간단한 몇 단계를 거쳐 자동 감지 및 재발급 기능으로 신속히 복구할 수 있도록 지원합니다. 덕분에 개발자는 로컬 HTTPS 환경을 지속적으로 안정적으로 유지할 수 있습니다.