본문으로 건너뛰기

커스텀 인증서 (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 CA 인증서가 설치 및 신뢰된 상태인 Proxyman Custom Certificates 창

Root Certificate 탭

정보

Proxyman 루트 인증서는 Mac에서 로컬로 생성됩니다. 직접 루트 인증서를 생성해 Proxyman에 추가할 수도 있습니다. 자체 서명 루트 인증서를 생성하는 방법을 참고하세요.

2. 인증서 형식​

Proxyman은 다음 형식을 지원합니다.

커스텀 인증서PEM 또는 DERPKCS #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 핸드셰이크 오류 발생
  • 커스텀 인증서를 System Keychain에 추가하고 신뢰하도록 설정해 보세요
  • 인증서가 macOS 요구 사항과 맞지 않음 => 3번 섹션을 참고하세요
  • 인증서의 만료 날짜를 확인하세요
잘못된 암호로 인해 인증서를 가져올 수 없음암호화된 개인 키 또는 P12 파일을 열 수 있는 올바른 암호를 팀 리더에게 요청하세요

5. 사용 방법​

  • Certificate 메뉴 -> **Add Custom Certificates…**를 선택합니다

6. Apple의 새로운 보안 요구 사항을 준수하는 커스텀 루트 인증서용 자체 서명 인증서 생성 방법​

iOS 13 및 macOS Catalina (10.15)의 Apple 요구 사항 때문에, 작동하는 자체 서명 인증서를 생성하려면 추가 설정이 필요합니다.

다음 단계를 따르세요:

  1. 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. 커스텀 루트 인증서로 가져오기​

  1. Certificate 메뉴 -> Add Custom Certificates… -> Root Certificate 탭을 선택합니다
  2. Import 버튼 -> **Import P12...**를 클릭합니다
  3. root-ca.p12 파일을 선택하고 암호를 입력합니다.
  4. Keychain Access 앱에서 인증서를 신뢰하도록 설정합니다:
  • Keychain Access 앱을 엽니다
  • 추가한 인증서를 검색합니다. 이름은 인증서의 Common Name (CN)일 수 있습니다
  • 인증서를 더블 클릭해 열고 Always Trust를 선택합니다
  • 창을 닫아 변경 사항을 저장합니다
Trust가 Always Trust로 설정된 macOS Keychain Access 인증서 창

5. 녹색 체크 표시가 보이면 인증서가 설치되어 신뢰되었다는 뜻입니다.

8. 서버/클라이언트 인증서로 가져오기​

커스텀 서버 또는 클라이언트 인증서의 경우에는 자체 서명 인증서를 생성하지 마세요. 회사에서 사용하는 인증서를 팀원이나 팀 리더에게 요청하세요. DER/PEM 또는 P12 형식일 수 있습니다.

그런 다음 Custom Certificates 창의 Server Certificates 또는 Client Certificates 탭에서 가져오세요.

PEM 인증서 파일과 개인 키 파일이 선택된 Proxyman Certificate Importer 시트
정보

인증서가 루트 인증서가 아니므로 System Keychain에서 인증서를 신뢰하도록 설정할 필요는 없습니다.

더 알아보기​