커스텀 인증서 사용
엔터프라이즈 인증서가 없고 ApiCatcher에서 제공하는 인증서를 사용하고 싶지 않은 개인 개발자의 경우, ApiCatcher의 엔터프라이즈 인증서 기능을 사용하여 자체 인증서를 가져올 수 있습니다.
사용 방법에 대한 예시
준비 작업
환경: 로컬 네트워크 (LAN) 장치: Mac, iPhone Mac에 설치할 소프트웨어: OpenSSL
작동 단계
- 컴퓨터에서 생성: 자체 서명된 루트 CA + 액세스용 서버 인증서 (인증서 + 개인 키).
- 루트 CA를 iPhone에 설치하고 완전히 신뢰하도록 설정합니다 (ApiCatcher 루트 인증서 설치와 동일).
- 로컬 HTTPS 서비스에서 이 서버 인증서를 사용합니다.
- ApiCatcher의 엔터프라이즈 인증서 - 인증서 추가 페이지에서 인증서 PEM + 개인 키 PEM을 가져오고, 도메인에는 CONNECT에 표시되는 Host를 입력합니다 (이 예시에서는 로컬 IP 사용).
- iPhone을 동일한 Wi-Fi에 연결하고 ApiCatcher VPN을 켭니다.
- Safari에서
https://<당신의 IP>:8443에 접속하여 캡처 로그에서 HTTPS가 복호화되었는지 확인합니다.
1. Mac에서 인증서 준비 (OpenSSL)
작업 디렉토리 준비:
mkdir -p ~/apicatcher-enterprise-test && cd ~/apicatcher-enterprise-test
아래 스크립트에서 192.168.1.75를 당신의 Mac 로컬 IP로 변경하세요 (시스템 설정 → 네트워크에서 확인 가능).
# 자체 서명 루트 CA 생성
openssl req -x509 -newkey rsa:2048 -sha256 -days 3650 \
-keyout ca-key.pem -out ca-cert.pem -nodes \
-subj "/CN=ApiCatcher Local Test CA"
# 서버 인증서용 개인 키
openssl genrsa -out server-key.pem 2048
# SAN이 포함된 구성 (자신의 IP에 맞게 CN 및 IP.1 수정)
cat > server.cnf <<'EOF'
[req]
distinguished_name = dn
req_extensions = v3_req
prompt = no
[dn]
CN = 192.168.1.75
[v3_req]
subjectAltName = @alt_names
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
[alt_names]
IP.1 = 192.168.1.75
EOF
# CSR + CA를 사용하여 서버 인증서 발급
openssl req -new -key server-key.pem -out server.csr -config server.cnf
openssl x509 -req -in server.csr -CA ca-cert.pem -CAkey ca-key.pem \
-CAcreateserial -out server-cert.pem -days 825 -sha256 \
-extensions v3_req -extfile server.cnf
다음 파일들을 얻을 수 있습니다:
| 파일 | 용도 |
|---|---|
server-cert.pem | 앱의 인증서 PEM에 붙여넣기 |
server-key.pem | 앱의 개인 키 PEM에 붙여넣기 |
ca-cert.pem | iPhone으로 보내 설치 및 신뢰 |
2. iPhone에 루트 CA 설치
ca-cert.pem을 스마트폰으로 보냅니다 (AirDrop, 이메일, 웹을 통한 다운로드 등).- 설정 → 일반 → VPN 및 기기 관리에서 프로파일을 설치합니다.
- 설정 → 일반 → 정보 → 인증서 신뢰 설정에서 해당 루트 CA에 대해 전체 신뢰 활성화 스위치를 켭니다.
3. Mac에서 HTTPS 서비스 시작
동일한 디렉토리에서 실행:
## OpenSSL에서 제공하는 https 서버 사용
openssl s_server -accept 8443 -www \
-cert server-cert.pem -key server-key.pem
터미널을 닫지 마세요.
4. 앱에서 엔터프라이즈 인증서 구성
- 먼저 VPN 캡처를 중지합니다.
- 설정 → 엔터프라이즈 인증서 → 인증서 추가 → PEM:
- 인증서:
server-cert.pem전체 내용 - 개인 키:
server-key.pem전체 내용
- 인증서:
- 도메인 패턴 입력:
192.168.1.75(Safari 주소창의 Host와 정확히 일치해야 하며, 포트는 포함하지 않습니다). - 저장 후 VPN 캡처를 다시 시작합니다.
5. iPhone에서 접속
Safari에서 열기: https://192.168.1.75:8443
(인증서 문제가 표시되는 경우, 루트 CA가 "완전히 신뢰"되었는지, 주소가 인증서의 IP와 일치하는지 확인하십시오.)
ApiCatcher에서 이 기록을 확인합니다: HTTPS 콘텐츠가 복호화되어야 합니다 (단순한 터널이 아닌, 최소한 요청 경로/메서드 등이 표시됨).
6. 일반적인 문제
| 현상 | 해결책 |
|---|---|
| 연결 불가 | 방화벽이 8443을 허용하는지, Mac과 iPhone이 같은 네트워크 대역에 있는지 확인하세요. |
| 여전히 복호화 안 됨 | 도메인이 정확히 192.168.1.75인지, 가져오기 후 캡처를 다시 시작했는지 확인하세요. |
| Safari 인증서 오류 | 루트가 신뢰되지 않았거나 SAN에 접속하려는 IP가 없습니다. |
7. 도메인 이름으로 접속하기
예시의 IP(모든 단계에서)를 도메인 이름으로 교체하기만 하면 도메인으로 접속할 수 있습니다.