커스텀 인증서 (Custom Certificates)
SSL 피닝과 상호 TLS 인증을 위해 Proxyman에 커스텀 루트, 서버, 클라이언트 인증서를 추가하고, Apple이 신뢰하는 자체 서명 루트 인증서를 생성하세요.
1. 무엇인가요?
Proxyman은 커스텀 루트 인증서, 서버 인증서, 클라이언트 인증서를 지원합니다. 인증서를 직접 추가하면, Proxyman은 이를 사용해 클라이언트, 서버, Proxyman 앱 사이의 SSL 연결을 설정합니다.
| 커스텀 인증서 유형 | 용도 | Proxyman의 사용 방식 |
|---|---|---|
| 서버 인증서 | SSL 피닝을 사용하는 클라이언트의 HTTPS 트래픽을 가로채기 위한 용도 | 클라이언트와의 SSL 핸드셰이크에 이 인증서를 사용 |
| 클라이언트 인증서 | 상호 인증(Mutual Authentication)을 사용하는 클라이언트의 HTTPS 트래픽을 가로채기 위한 용도 | 특정 서버와의 SSL 핸드셰이크에 이 인증서를 사용 |
| 루트 인증서 | Proxyman의 로컬 인증서를 사용하지 않고 클라이언트와 서버의 HTTPS 트래픽을 가로채기 위한 용도 | 클라이언트와 서버 양쪽의 SSL 핸드셰이크 |

Root Certificate 탭
Proxyman 루트 인증서는 Mac에서 로컬로 생성됩니다. 직접 루트 인증서를 생성해 Proxyman에 추가할 수도 있습니다. 자체 서명 루트 인증서를 생성하는 방법을 참고하세요.
2. 인증서 형식
Proxyman은 다음 형식을 지원합니다.
| 커스텀 인증서 | PEM 또는 DER | PKCS #12 (p12) |
|---|---|---|
| 루트 인증서 | 지원하지 않음 | 지원 |
| 클라이언트 인증서 | 지원 | 지원 |
| 서버 인증서 | 지원 | 지원 |
- PKCS #12 (p12).
- PEM 또는 DER 형식의 개인 키 및 인증서 파일.
- Proxyman은 개인 키 및 인증서 파일의 형식(PEM 또는 DER)을 자동으로 감지합니다.
- 암호화된 개인 키 또는 PKCS #12 파일을 가져올 때 Proxyman이 암호를 묻습니다.
- 모든 암호는 Proxyman Keychain에 안전하게 저장됩니다.
인증서가 Proxyman에서 지원하지 않는 형식이라면, 가져오기 전에 p12 또는 PEM/DER 형식으로 변환하세요.
3. macOS 10.15+ 및 iOS 13+ 인증서 요구 사항
macOS 10.15 이상 또는 iOS 13 이상에서 커스텀 루트 인증서나 서버 인증서를 사용하면, 인증서가 아래 요구 사항을 충족하지 않는 한 Safari 또는 iOS 기기에서 SSL 핸드셰이크가 실패할 수 있습니다:
- RSA 키는 2048비트 이상이어야 합니다
- 해시 알고리즘은 SHA-2 계열이어야 합니다
- 서버의 DNS 이름은 Subject Alternative Name (SAN)에 있어야 합니다. Common Name (CN)은 더 이상 신뢰되지 않습니다
- 인증서는 유효해야 합니다 (현재 날짜가 Not Before와 Not After 날짜 사이에 있어야 합니다)
- TLS 서버 인증서에는 id-kp-serverAuth OID가 포함된 ExtendedKeyUsage (EKU) 확장이 있어야 합니다.
자세히 보기: iOS 13 및 macOS 10.15의 신뢰할 수 있는 인증서 요구 사항
이 과정이 너무 복잡하다면 Proxyman이 대신 처리하도록 할 수 있습니다. Certificate 메뉴 -> **Install Certificate on this Mac…**를 열고 Automatic 탭을 선택하세요.
4. 자주 발생하는 문제
| 문제 | 해결 방법 |
|---|---|
| 개인 키와 인증서가 일치하지 않음 | 다른 인증서와 개인 키를 시도하고 서로 일치하는지 확인하세요 |
| 커스텀 인증서 사용 시 SSL 핸드셰이크 오류 발생 |
|
| 잘못된 암호로 인해 인증서를 가져올 수 없음 | 암호화된 개인 키 또는 P12 파일을 열 수 있는 올바른 암호를 팀 리더에게 요청하세요 |
5. 사용 방법
- Certificate 메뉴 -> **Add Custom Certificates…**를 선택합니다
6. Apple의 새로운 보안 요구 사항을 준수하는 커스텀 루트 인증서용 자체 서명 인증서 생성 방법
iOS 13 및 macOS Catalina (10.15)의 Apple 요구 사항 때문에, 작동하는 자체 서명 인증서를 생성하려면 추가 설정이 필요합니다.
다음 단계를 따르세요:
- Desktop 폴더에
cert.config파일을 생성합니다
[ ca ]
default_ca = CA_default
[ CA_default ]
default_md = sha256
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = critical,CA:true
keyUsage=critical,keyCertSign
extendedKeyUsage = serverAuth,clientAuth
[ req ]
prompt = no
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
C=US
L=US
O=Proxyman LLC
CN=proxyman.dev
OU=Proxyman
- C, L, O, CN, OU 매개변수의 값을 수정합니다.
2. Terminal 앱에서 RSA 키를 생성합니다. (your_password를 임의의 암호(예: 123456)로 바꾸세요)
cd ~/Desktop
openssl genrsa -aes256 -passout pass:your_password -out key.pem 2048
3. 자체 서명 인증서와 개인 키를 생성합니다. (your_password를 2단계에서 사용한 암호로 바꾸세요)
openssl req -x509 -new -nodes -passin pass:your_password -config cert.config -key key.pem -sha256 -extensions v3_ca -days 825 -out root-ca.pem
4. p12 형식으로 변환합니다. (your_password를 2단계에서 사용한 암호로 바꾸세요)
openssl pkcs12 -export -legacy -out root-ca.p12 -in root-ca.pem -inkey key.pem -passin pass:your_password -passout pass:your_password
5. 이제 root-ca.p12 파일이 준비되었습니다. 다음 단계로 넘어가세요.
macOS 14(OpenSSL v3) 이상에서 커스텀 인증서를 가져올 수 없다면, 4단계에서 `-legacy` 플래그를 사용하세요.
참고: MAC verification failed during PKCS12 import (Stack Overflow)
7. 커스텀 루트 인증서로 가져오기
- Certificate 메뉴 -> Add Custom Certificates… -> Root Certificate 탭을 선택합니다
- Import 버튼 -> **Import P12...**를 클릭합니다
- root-ca.p12 파일을 선택하고 암호를 입력합니다.
- Keychain Access 앱에서 인증서를 신뢰하도록 설정합니다:
- Keychain Access 앱을 엽니다
- 추가한 인증서를 검색합니다. 이름은 인증서의 Common Name (CN)일 수 있습니다
- 인증서를 더블 클릭해 열고 Always Trust를 선택합니다
- 창을 닫아 변경 사항을 저장합니다
5. 녹색 체크 표시가 보이면 인증서가 설치되어 신뢰되었다는 뜻입니다.
8. 서버/클라이언트 인증서로 가져오기
커스텀 서버 또는 클라이언트 인증서의 경우에는 자체 서명 인증서를 생성하지 마세요. 회사에서 사용하는 인증서를 팀원이나 팀 리더에게 요청하세요. DER/PEM 또는 P12 형식일 수 있습니다.
그런 다음 Custom Certificates 창의 Server Certificates 또는 Client Certificates 탭에서 가져오세요.
인증서가 루트 인증서가 아니므로 System Keychain에서 인증서를 신뢰하도록 설정할 필요는 없습니다.