본문 바로가기

Apple 서명

iOS 인증서 생성기

Mac 없이도 iOS 배포 또는 개발 인증서를 생성하세요. 여기서 Certificate Signing Request(CSR)와 개인 키를 생성한 뒤, CSR을 Apple에 업로드하여 발급된 인증서를 서명용 .p12 파일로 변환할 수 있습니다.

  • Keychain Access나 Mac 없이도 Windows, Linux, macOS에서 Apple용 CSR을 생성하세요.
  • Apple Distribution(App Store, TestFlight, ad hoc) 및 Apple Development 인증서 모두 지원합니다.
  • 발급받은 .cer 파일을 이 페이지에서 브라우저만으로 Xcode, fastlane, CI, Capgo Cloud Build용 .p12로 변환하세요.

워크플로우

  1. 1. 서명 요청에 포함할 인증서 주체(Subject) 정보를 입력하세요.
  2. 2. CSR과 해당 개인 키를 다운로드하세요.
  3. 3. Apple Developer에서 인증서를 생성할 때 CSR을 업로드하세요.
  4. 4. 아래 2단계에서 발급된 .cer와 개인 키를 비밀번호로 보호된 .p12로 변환하세요.

1단계

CSR 및 개인 키 생성

Apple 인증서 요청에 반영할 개인 또는 조직 정보를 그대로 사용하세요.

결과물

생성된 서명 요청

CSR이 생성되기 전까지는 아무것도 표시되지 않습니다. 생성이 완료되면 두 파일을 모두 다운로드하고 개인 키를 안전하게 보관하세요.

인증서 요청을 생성하면 여기서 대상 요약 정보와 다운로드 버튼을 확인할 수 있습니다.

2단계

Apple .cer 파일을 .p12로 변환

Apple에서 인증서를 발급받은 후, 다음을 .cer 1단계의 개인 키와 결합하여 암호로 보호된 .p12 Xcode, fastlane, CI 또는 Capgo Cloud Build용 파일을 생성하세요.

모든 과정은 브라우저 내에서만 실행됩니다. 인증서, 개인 키, 비밀번호는 로컬에서만 읽히며 서버로 절대 upload되지 않습니다.

Apple Developer에서 받은 distribution.cer 또는 development.cer 파일입니다. DER 및 PEM 형식을 모두 지원합니다.

Apple에 업로드한 CSR과 함께 다운로드한 ios-private-key.pem 파일입니다.

결과물

.p12 서명 ID

.cer 파일과 개인 키를 선택하고 비밀번호를 설정하여 .p12를 생성하세요. macOS Keychain 및 Xcode에서 지원하는 SHA-1 MAC 기반 3DES 암호화 방식을 사용합니다.

기본 개념

iOS 서명 인증서란 무엇인가요?

Apple은 모든 iOS 앱에 code 서명을 요구합니다. 서명 인증서는 빌드가 Apple Developer 팀 구성원에 의해 생성되었음을 증명하며, iOS는 신뢰할 수 없는 서명이 포함된 앱의 설치나 실행을 거부합니다.

인증서를 생성하려면 세 가지 파일이 필요합니다. 먼저 CSR (.csr) 파일에 공개 키와 신원 정보가 담기며, 이 파일이 Apple로 전송됩니다. 개인 키(private key) (.pem)은 사용자에게 남습니다. 반면 인증서 (.cer)은 Apple이 발급하는 인증서입니다. 빌드 도구는 이 인증서와 개인 키를 하나로 묶은 .p12 다운로드됩니다.

Mac의 키체인 접근(Keychain Access)은 CSR을 생성하고 개인 키를 로그인 키체인에 숨깁니다. 이 생성기는 두 파일을 직접 제공하므로, Windows, Linux 또는 CI 러너에서도 Apple Distribution 또는 Apple Development 인증서를 생성할 수 있으며 키의 위치를 항상 명확히 알 수 있습니다.

보안 및 개인정보 보호

개인 키 처리 방식

  • CSR과 RSA 2048비트 개인 키는 HTTPS를 통해 stateless Capgo 엔드포인트에서 즉석 생성되어 브라우저로 직접 반환됩니다.
  • 응답은 다음과 함께 전송됩니다: Cache-Control: no-store. 데이터베이스에 저장되거나 응답 후 유지되는 정보는 전혀 없습니다.
  • CSR은 Apple Developer가 요구하는 SHA-256 방식으로 서명됩니다. CSR만 Apple에 업로드되며, 개인 키(private key)는 사용자에게만 안전하게 보관됩니다.
  • .cer를 .p12로 변환하는 과정은 브라우저 내에서만 실행됩니다. 인증서, 개인 키, 비밀번호는 절대 서버로 업로드되지 않습니다.
  • 계정이나 가입이 필요 없으며, 남용 방지를 위해 요청 횟수가 제한됩니다.

로컬에서 직접 키를 생성하고 싶으신가요? 다음 OpenSSL 명령어를 사용하면 동일한 두 파일을 생성할 수 있습니다.

동일한 OpenSSL 명령어
openssl req -new -newkey rsa:2048 -nodes \
  -keyout ios-private-key.pem \
  -out ios-certificate-request.csr \
  -subj "/emailAddress=jane@company.com/CN=Jane Doe/C=US"

단계별 가이드

Mac 없이 iOS 배포 인증서(distribution certificate)를 만드는 방법

CSR 생성부터 TestFlight 서명 빌드까지. 모든 단계는 Windows, Linux 또는 macOS의 브라우저와 터미널에서 진행할 수 있습니다.

  1. 1단계

    CSR 및 개인 키 생성

    위 양식에 이름, 이메일, 국가 코드(2자리) code를 입력하고 'Generate CSR and private key'를 선택하세요. 생성된 두 파일을 다운로드한 후, 개인 키를 안전하게 보관하시기 바랍니다.

  2. 2단계

    Apple Developer에서 인증서 생성하기

    developer.apple.com에 로그인하여 Certificates, Identifiers & Profiles로 이동합니다. 플러스(+) 버튼을 클릭한 후 Apple Distribution 또는 Apple Development를 선택하세요.

  3. 3단계

    CSR 업로드 및 .cer 파일 다운로드

    ios-certificate-request.csr 파일을 업로드하고 계속 진행하여 발급된 인증서(보통 distribution.cer 또는 development.cer)를 다운로드합니다.

  4. 4단계

    .cer 파일을 .p12 파일로 변환하기

    이 페이지의 2단계에 있는 .cer to .p12 변환기를 사용하세요. .cer 파일과 private key를 선택하고 비밀번호를 설정한 뒤 .p12를 다운로드하면 됩니다. 브라우저에서 바로 실행하거나 OpenSSL 명령어를 사용할 수도 있습니다.

  5. 5단계

    Provisioning Profile 생성하기

    Apple Developer에서 App ID에 맞는 App Store, ad hoc 또는 development provisioning profile을 생성하고 새로 만든 인증서를 선택하세요.

  6. 6단계

    앱 서명하고 배포하기

    .p12와 프로파일을 Xcode, fastlane, CI secrets 또는 Capgo Cloud Build로 가져온 뒤, 앱을 빌드해 TestFlight나 App Store에 업로드하세요.

결과물 사용하기

.p12로 iOS 앱 서명하기

가장 빠른 방법은 브라우저에서 바로 쓰는 .cer to .p12 변환기입니다. 위 방법을 사용하세요. 명령줄이 더 편하신가요? OpenSSL로도 같은 작업을 할 수 있습니다. export password를 입력하면 그 값이 .p12 비밀번호가 됩니다.

OpenSSL로 .p12 생성하기

OpenSSL은 macOS와 대부분의 Linux 배포판에 사전 설치되어 있으며, Windows에서는 Git Bash 또는 WSL로 사용할 수 있습니다.

.cer를 .p12로 변환하기
# 1. Convert Apple's DER .cer to PEM
openssl x509 -inform DER -in distribution.cer -out distribution.pem

# 2. Bundle the certificate and private key into a .p12
#    -legacy (OpenSSL 3) keeps the file compatible with macOS Keychain.
#    Drop it on OpenSSL 1.1 or LibreSSL, which do not support the flag.
openssl pkcs12 -export -legacy \
  -inkey ios-private-key.pem \
  -in distribution.pem \
  -name "Apple Distribution" \
  -out distribution.p12

Capgo Cloud Build

.p12와 provisioning profile을 한 번 저장한 다음, Capgo로 iOS 및 Android 앱을 클라우드에서 빌드하고 서명하세요.

Capgo CLI
bunx @capgo/cli@latest build credentials save \
  --platform ios \
  --certificate ./distribution.p12 \
  --p12-password "your-p12-password" \
  --ios-provisioning-profile "com.example.app=./profile.mobileprovision" \
  --apple-team-id "TEAM123456"

fastlane 및 Xcode

Mac에서는 .p12 파일을 더블 클릭하여 Keychain에 가져오면 Xcode가 자동으로 인식합니다. CI runner에서는 fastlane을 사용하여 임시 keychain에 가져오세요.

Fastfile
import_certificate(
  certificate_path: "distribution.p12",
  certificate_password: ENV["P12_PASSWORD"],
  keychain_name: "build.keychain",
  keychain_password: ENV["KEYCHAIN_PASSWORD"]
)

CI secrets 및 키 체크

GitHub Actions 또는 GitLab secrets용 서명 파일을 인코딩하고, 인증서가 개인 키와 일치하는지 확인하세요.

base64 및 OpenSSL
# Encode the .p12 and profile for CI secrets
base64 -i distribution.p12 | tr -d '\n' > p12.base64
base64 -i profile.mobileprovision | tr -d '\n' > profile.base64

# Check that the certificate and key match (both hashes must be equal)
openssl x509 -noout -modulus -in distribution.pem | openssl md5
openssl rsa -noout -modulus -in ios-private-key.pem | openssl md5

문제 해결

일반적인 iOS 인증서 오류 및 해결 방법

입력한 비밀번호가 올바르지 않습니다 (Keychain 가져오기)
OpenSSL 3은 macOS Keychain에서 거부될 수 있는 알고리즘으로 .p12 파일을 암호화합니다. 위에서 설명한 대로 OpenSSL 3과 -legacy 플래그를 사용하여 .p12를 다시 내보내세요.
개인 키와 일치하는 인증서가 없습니다
.cer 파일이 다른 CSR에 대해 발급되었습니다. 해당 CSR과 함께 다운로드한 개인 키를 사용하거나, 인증서를 폐기하고 새 CSR로 다시 시작하세요.
인증서를 불러올 수 없습니다
Apple은 .cer 파일을 DER 형식으로 제공합니다. openssl x509로 .cer를 변환할 때 -inform DER 옵션을 추가하세요.
프로비저닝 프로필에 서명 인증서가 포함되어 있지 않습니다
프로필은 특정 인증서와 연결되어 있습니다. 새 인증서를 생성한 후 프로비저닝 프로필을 수정하거나 다시 생성하고, 다시 다운로드하세요.
인증서 최대 개수에 도달했습니다
Apple은 팀당 보유할 수 있는 배포 인증서 개수를 제한합니다. Apple Developer에서 사용하지 않는 인증서를 폐기하세요. 이미 App Store에 출시된 앱에는 영향을 주지 않습니다.
Keychain에서 인증서를 신뢰할 수 없습니다
Apple PKI에서 최신 Apple Worldwide Developer Relations (WWDR) 중간 인증서를 설치한 후, .p12 파일을 다시 가져오세요.

서명 완료 후

스토어 심사 없이 웹 수정 사항을 즉시 배포하세요

네이티브 바이너리 서명이 완료되면 Capgo live updates로 채널, 롤백, 기존 CI/CD를 그대로 활용하면서 Capacitor 웹 레이어 변경 사항을 OTA로 배포할 수 있습니다. 동일한 릴리스 경로에 OTA를 연결할 준비가 되면 무료로 사용해 보세요.

자주 묻는 질문

iOS 인증서 생성기 FAQ

CSR, 인증서 유형, .p12 변환, Apple Developer 계정, CI 또는 클라우드 빌드에서 인증서 사용법에 대한 답변.

이 iOS 인증서 생성기는 무엇을 만드나요?

인증서 서명 요청(.csr)과 이에 대응하는 RSA 2048비트 개인 키(.pem)를 생성합니다. CSR을 Apple Developer에 업로드해 Apple Distribution 또는 Apple Development 인증서(.cer)를 받은 다음, .cer와 개인 키를 .p12 파일로 결합해 Xcode, fastlane, CI, Capgo Cloud Build에서 사용하세요.

Certificate Signing Request (CSR)란 무엇인가요?

CSR은 공개 키와 신원 정보(이름, 이메일, 국가)를 포함하며, 사용자의 개인 키로 서명된 작은 파일입니다. Apple은 이 CSR을 사용하여 해당 키와 연결된 서명 인증서를 발급합니다. 개인 키는 Apple로 전송되지 않으므로, 이 도구가 생성하는 .pem 파일을 반드시 안전하게 보관해야 합니다.

Mac 없이도 iOS 배포 인증서를 만들 수 있나요?

네, 가능합니다. 여기서 CSR과 개인 키를 생성한 뒤, 어떤 브라우저에서든 Apple Developer 포털에 CSR을 업로드하세요. 그 다음 .cer 파일을 다운로드하고, 이 페이지의 2단계에 있는 변환기를 사용하여 .p12로 변환하면 됩니다. Windows, Linux, macOS 어디서든 작동하므로 Keychain Access가 전혀 필요하지 않습니다.

Apple Developer에서 어떤 인증서 유형을 선택해야 하나요?

Xcode를 통해 등록된 테스트 기기에서 빌드를 실행하려면 Apple Development를 선택하세요. App Store, TestFlight 및 ad hoc 배포용 빌드에 서명하려면 Apple Distribution을 선택하세요. 동일한 CSR을 두 유형 모두에 사용할 수 있으며, 유형은 이 도구가 아닌 Apple Developer에서 선택합니다.

개인 키가 서버에 저장되나요?

아니요. 1단계에서 CSR과 개인 키는 HTTPS를 통해 stateless Capgo 엔드포인트에서 즉석 생성되어 Cache-Control: no-store 설정과 함께 브라우저로 직접 반환됩니다. 데이터베이스에 기록되거나 응답 후 보관되지 않습니다. 2단계의 .cer to .p12 변환기는 브라우저 내에서만 실행되며 아무것도 업로드하지 않습니다. 로컬 키 생성이 필요한 정책이라면 이 페이지의 OpenSSL 명령어를 사용하세요.

.cer 파일을 .p12로 변환해야 하는 이유가 무엇인가요?

Apple에서 제공하는 .cer 파일에는 공개 인증서만 포함되어 있습니다. 앱에 서명하려면 개인 키(private key)도 필요하므로, 빌드 도구는 인증서와 개인 키를 비밀번호로 묶은 .p12 파일을 요구합니다.

.cer를 .p12로 어떻게 변환하나요?

이 페이지의 2단계를 사용하세요. Apple에서 받은 .cer(DER 또는 PEM)를 선택하고, CSR 생성 시 사용한 개인 키 .pem을 선택한 뒤, 비밀번호를 입력하고 Build .p12 file을 클릭합니다. 브라우저가 인증서와 키의 일치 여부를 확인한 후, macOS Keychain, Xcode, fastlane에서 사용할 수 있는 3DES 암호화된 .p12 파일을 생성합니다. 데이터는 업로드되지 않습니다. CI secrets용으로 .p12를 base64로 복사하여 사용할 수도 있습니다.

Apple Developer 계정이 필요한가요?

네. CSR을 업로드하고 서명 인증서를 발급받으려면 유료 Apple Developer Program 멤버십(연간 99 USD 또는 사내 배포용 Enterprise 프로그램)이 필요합니다. CSR 자체는 계정 없이도 생성할 수 있습니다.

iOS 서명 인증서의 유효 기간은 얼마나 되나요?

Apple Development 및 Apple Distribution 인증서의 유효 기간은 1년입니다. App Store에 이미 출시된 앱은 인증서가 만료되거나 취소되어도 계속 작동하지만, 다음 빌드에 서명하려면 새 인증서와 provisioning profile이 필요합니다.

동일한 CSR이나 개인 키를 재사용할 수 있나요?

가능은 하지만, 인증서마다 새로운 키 쌍을 사용하는 것이 보안상 더 안전하고 교체하기도 쉽습니다. 주의할 점은 키를 혼용해서는 안 된다는 것입니다. .cer 파일은 해당 CSR을 생성한 정확한 개인 키와만 작동합니다. 만약 키를 분실했다면, 인증서를 폐기하고 새로운 CSR을 생성하세요.

이 CSR을 푸시 알림(APNs) 인증서용으로 사용할 수 있나요?

네, 가능합니다. Apple에서 APNs SSL 인증서를 생성할 때도 CSR을 요구합니다. 다만 신규 앱의 경우, 만료되지 않고 모든 앱에서 공용으로 사용할 수 있는 APNs 인증 키(.p8)를 사용하는 것이 보통 더 간편합니다.

Capgo Native Build

Capgo로 iOS 및 Android 앱을 클라우드에서 빌드하고 서명하세요

이 도구로 생성한 .p12와 provisioning profile을 업로드하고, CI에서 릴리스 빌드를 트리거하여 자체 빌드 팜 구축 없이도 TestFlight나 App Store로 바로 배포하세요.

Native Build 살펴보기