ServBay에서 서드파티 기관이 발급한 SSL 인증서 사용하기
로컬 개발이나 테스트에서 실제 운영 환경을 모사할 때, 신뢰할 수 있는 서드파티 CA(인증기관)가 발급한 SSL 인증서를 사용하면 웹사이트가 HTTPS로 안전하게 접근할 수 있습니다. 이는 HTTPS가 필요한 기능 테스트나, 실제 운영 환경과 최대한 비슷하게 유지관리하는 데 매우 중요합니다. 이 글에서는 ServBay 로컬 웹 개발 환경에서 서드파티 인증서 설정 과정을 자세히 안내합니다.
WARNING
서드파티 CA가 발급하는 SSL 인증서는 일반적으로 .com
, .org
, .net
, .cn
등 표준 도메인 확장자만 지원하며, .local
, .test
, .demo
등 맞춤형 비표준 확장자는 지원하지 않습니다. 이는 비표준 도메인은 공개 검증이 불가능하기 때문입니다. 만약 로컬 개발 도메인이 비표준 확장자라면, ServBay 내장 User CA 또는 Public CA 기능을 이용해 신뢰받는 로컬 SSL 인증서 생성을 권장합니다.
적용 예시
- 운영 환경 모사: 실제 운영 환경과 동일하게 HTTPS 설정을 구축, HTTPS 상황에서 웹사이트 동작을 테스트
- HTTPS 의존 기능 테스트: 브라우저의 Secure Context가 요구되는 API 및 기능(Service Workers, Web Crypto API, Geolocation 등) 테스트
- 로컬 API 개발: 로컬 백엔드 API 역시 HTTPS로 구성하여 프론트엔드가 손쉽게 보안 연결 테스트 가능
사전 준비
시작하기 전 다음 조건을 갖췄는지 확인하세요:
- macOS에서 ServBay가 정상적으로 설치 및 실행 중일 것
- 터미널 및 명령어 사용에 익숙할 것
- 시스템에 OpenSSL이 설치되어 있을 것(macOS는 기본 내장되어 있음)
1단계: 서드파티 SSL 인증서 신청
먼저 신뢰받는 서드파티 CA(예: Let's Encrypt, DigiCert, GlobalSign, Sectigo 등)에서 SSL 인증서를 신청해야 합니다. 이를 위해 중요한 절차 중 하나인 인증서 서명 요청(CSR) 파일 생성부터 안내합니다.
개인키(Private Key) 생성
개인키는 서버가 SSL로 암호화된 트래픽을 해독하는 데 반드시 필요한 파일로, 반드시 안전하게 보관해야 하며 외부 유출을 막아야 합니다. 터미널에서 다음 OpenSSL 명령으로 RSA 개인키를 생성할 수 있습니다:
shopenssl genpkey -algorithm RSA -out servbay.demo.key -pkeyopt rsa_keygen_bits:2048
1openssl genpkey
: 개인키 생성용 OpenSSL 명령어-algorithm RSA
: RSA 알고리즘을 사용-out servbay.demo.key
: 개인키 파일명을servbay.demo.key
로 지정-pkeyopt rsa_keygen_bits:2048
: 2048비트 길이의 RSA 키(최소 권장 길이)
CSR(인증서 서명 요청) 생성
CSR 파일은 공개키와 인증서 신청에 필요한 정보를 담고 있으며, 이 파일을 CA에 제출합니다. 이전 단계에서 만든 개인키로 다음과 같이 CSR을 생성합니다:
shopenssl req -new -key servbay.demo.key -out servbay.demo.csr
1openssl req
: CSR 처리를 위한 OpenSSL 명령어-new
: 새로운 CSR 생성-key servbay.demo.key
: 서명에 사용할 개인키 지정-out servbay.demo.csr
: CSR 파일명을servbay.demo.csr
로 지정
명령 실행 후 일련의 정보를 입력하라는 메시지가 표시됩니다. 실제 소속이나 CA 요구사항에 맞게 아래 예시처럼 입력합니다:
Country Name (2 letter code) [AU]:CN # 국가 코드, 예: CN(중국), US(미국) State or Province Name (full name) [Some-State]:Hong Kong # 주/성명 Locality Name (eg, city) []:Kowloon # 도시명 Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # 조직/회사명 Organizational Unit Name (eg, section) []:Development # 부서명(선택) Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **가장 중요: 인증서에 사용할 정식 도메인(FQDN) 입력** Email Address []:[email protected] # 이메일(선택) Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: # 챌린지 비밀번호(대개 빈칸) An optional company name []: # 추가 회사명(대개 빈칸)
1
2
3
4
5
6
7
8
9
10
11
12Common Name
에는 ServBay에서 실제 사용할 도메인(예:servbay.demo
)을 반드시 올바르게 입력하세요. 여러 도메인용 인증서(SAN, 다중 도메인 인증서)가 필요하다면, 해당 CA의 안내에 따라 추가 도메인을 지정할 수 있으며, 기본 CSR 생성 방식은 유사합니다. 일부 CA에서는 SAN 포함 CSR 생성을 위한 별도 온라인 도구 제공이 있을 수 있습니다.CSR 제출 및 인증서 발급 받기
생성한
servbay.demo.csr
파일을 선택한 CA 웹사이트에 복사/업로드하고, 해당 절차(대개 DNS 레코드, HTTP 파일 업로드, 이메일 인증 등)에 따라 도메인 소유권 검증을 마치세요. 인증이 완료되면 CA가 인증서 파일을 발급해줍니다. 일반적으로 아래 파일들이 제공됩니다:- 메인 인증서 파일(예:
servbay.demo.crt
또는servbay.demo.pem
) - 하나 혹은 여러 개의 중간 인증서 파일(
intermediate.crt
,ca-bundle.crt
등 인증서 체인용) - 루트 인증서 파일(별도 설치 필요 없는 경우가 많고, OS/브라우저에 내장됨)
- 메인 인증서 파일(예:
2단계: ServBay에 서드파티 SSL 인증서 설정
서드파티 CA가 발급한 인증서 파일을 받았다면, ServBay에 해당 인증서를 가져와 HTTPS를 적용해야 합니다.
ServBay에서는 커스텀 인증서와 개인키를 /Applications/ServBay/ssl/import/tls-certs/
디렉터리에 저장할 것을 권장합니다. 관리에 용이하기 때문입니다.
인증서 및 개인키 파일 이동
1단계에서 만든 개인키(
servbay.demo.key
), CA에서 발급받은 인증서(servbay.demo.crt
), 모든 중간 인증서(intermediate.crt
등)를 아래와 같이 해당 디렉터리로 이동합니다:shmv servbay.demo.key /Applications/ServBay/ssl/import/tls-certs/ mv servbay.demo.crt /Applications/ServBay/ssl/import/tls-certs/ # 중간 인증서도 같이 이동 mv intermediate.crt /Applications/ServBay/ssl/import/tls-certs/ # 다른 중간 인증서도 있을 경우 함께 이동 # mv another_intermediate.crt /Applications/ServBay/ssl/import/tls-certs/
1
2
3
4
5
6중간 인증서와 메인 인증서 파일 합치기
브라우저가 인증서 체인을 올바로 검증하도록, 중간 인증서 내용을 메인 인증서 파일 끝에 반드시 추가해야 합니다. 체인 순서는 보통 메인 인증서, 중간 인증서(여러 개인 경우 CA 안내순), 루트 인증서(대개 포함 불필요) 순입니다. CA에서 체인 순서를 안내하는 경우 그에 따르세요. 올바른 순서로 인증서를 합친
servbay.demo.crt
를 만들어야 합니다.중간 인증서가 하나인 경우 예시:
shcat intermediate.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt
1중간 인증서가 여러 개인 경우, CA 안내 순서대로 차례로 추가합니다. 예시:
intermediate1.crt
→intermediate2.crt
순이라면shcat intermediate1.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt cat intermediate2.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt
1
2합치기가 끝나면
servbay.demo.crt
파일은 메인 인증서와 모든 중간 인증서 체인을 포함하게 됩니다.ServBay 관리 패널 열기
ServBay 앱을 실행하고, 상단 메뉴바나 Dock에서 ServBay 아이콘을 클릭하여 관리 패널을 엽니다.
사이트 추가 또는 편집
왼쪽 메뉴에서
사이트
를 선택합니다.- 신규 사이트 추가 시 오른쪽 상단
+
버튼 클릭 - 기존 사이트에 인증서를 적용하려면 해당 사이트를 선택 후 연필(편집) 아이콘 클릭
- 신규 사이트 추가 시 오른쪽 상단
SSL 인증서 설정
사이트 설정 화면의 SSL 항목에서 인증서 발급 방식 중
Custom
(커스텀)을 선택하세요.- Certificate Key File (인증서 개인키 파일): 찾기 버튼을 클릭하고
/Applications/ServBay/ssl/import/tls-certs/
폴더에서 저장한 개인키(servbay.demo.key
)를 선택 - Certificate File (인증서 파일): 동일 폴더에서 합쳐둔 인증서 파일(
servbay.demo.crt
)을 선택
(참고: 이미지 경로는 예시이며 공식 ServBay 문서 사이트에서 실제 경로를 확인하세요)
- Certificate Key File (인증서 개인키 파일): 찾기 버튼을 클릭하고
도메인과 사이트 루트 폴더 설정
사이트 설정에서
Domain
항목에 인증서 신청 시 사용한 도메인(예:servbay.demo
)을 입력했는지 확인하고,Document Root
(루트 폴더)도 올바로 입력해야 합니다(예:/Applications/ServBay/www/servbay.demo
).설정 저장 및 적용
모든 설정을 마쳤으면 저장 버튼을 클릭하세요. ServBay는 변경사항 적용과 동시에 관련 웹 서버(Caddy, Nginx, Apache 등)를 재시작합니다. 적용을 확인하세요.
설정 검증
설정 후 브라우저로 해당 사이트(예: https://servbay.demo
)에 접속해봅니다. 정상적으로 설정됐다면 주소창에 자물쇠 아이콘이 노출됩니다. 자물쇠를 클릭하면 인증서 상세 정보(발급 기관, 인증서 체인 등)를 확인할 수 있습니다.
문제가 있을 경우 다음 체크리스트를 확인하세요:
- 인증서의 Common Name 또는 SAN과 도메인명이 일치하는지
- 개인키와 인증서 파일 경로가 맞는지
- 인증서 파일에 모든 중간 인증서가 정확한 순서로 합쳐졌는지
- ServBay 사이트 설정이 저장 및 정상 적용됐는지
- 인증서 발급 CA의 루트가 시스템에 신뢰 등재되어 있는지(보통 서드파티 CA는 자동 신뢰)
주의사항
- 도메인 일치: 인증서는 ServBay 설정 사이트의 도메인과(와일드카드라면 서브도메인까지) 정확히 일치해야 합니다.
- 유효 기간: 서드파티 인증서는 기간 만료가 있으며, 만기 전에 재발급 및 위 과정을 통해 인증서 파일을 갱신해야 합니다.
- 개인키 보안: 개인키(
.key
파일)는 매우 중요하며, 반드시 안전하게 관리 및 보관해야 합니다. - ServBay의 기타 SSL 옵션: ServBay에서는 다음과 같은 간편 SSL 설정도 지원합니다:
- ServBay User CA / Public CA: 다양한 도메인 확장자 지원 및 로컬 개발용 신뢰 인증서 자동 발급
- ACME(Let's Encrypt): 표준 도메인에 한해 ACME 클라이언트 연동 자동 발급·갱신 지원 본문에서 설명한 커스텀 가져오기 방식은 외부 경로로 이미 발급받은 서드파티 인증서 사용 시에 적합합니다.
자주 묻는 질문 (FAQ)
Q1: .pfx
또는 .p12
형식인 인증서 파일을 받았는데 ServBay에서 어떻게 사용하나요?
A1: .pfx
나 .p12
파일에는 개인키와 인증서 체인이 모두 포함되어 있습니다. OpenSSL을 사용해 아래처럼 각각 분리 추출해야 합니다:
sh
openssl pkcs12 -in your_certificate.pfx -nocerts -out your_private_key.key -nodes
openssl pkcs12 -in your_certificate.pfx -clcerts -nokeys -out your_certificate.crt
1
2
2
추출 후, CA에서 제공한 중간 인증서 파일을 별도로 받아 2단계 절차에 따라 .crt
파일에 합치세요.
Q2: 안내대로 설정했지만 브라우저에 여전히 ‘안전하지 않은 연결’ 경고가 뜹니다.
A2: 다음 상황을 확인하세요:
- 도메인 일치: 브라우저에서 접근하는 도메인과 인증서 내 도메인이 동일한가요?
- 인증서 체인:
.crt
파일에 모든 중간 인증서가 올바른 순서로 포함되어 있나요? SSL 검사 사이트로도 확인 가능 - ServBay 재시작: 설정 저장 후 웹 서버가 정상 재시작됐나요?
- 브라우저 캐시: 캐시를 지우거나 시크릿모드로 시도해보세요
- CA 신뢰: 발급 기관의 루트 CA가 OS에서 신뢰로 등재됐는지 확인
요약
위 순서대로 설정하면 ServBay 로컬 개발 환경에서도 서드파티 기관이 발급한 SSL 인증서를 제대로 적용할 수 있습니다. 이를 통해 운영 환경과 거의 같은 HTTPS 상황을 시뮬레이션하며 개발 및 테스트가 가능합니다. ServBay는 ACME, 자체 CA 등 더욱 간편한 여러 SSL 옵션도 제공하지만, 직접 서드파티 인증서를 가져와서 활용하는 방식 또한 특수한 상황이나 기존 인증서 이관 시 큰 도움이 됩니다.