Apple은 기존 Developer ID Certification Authority Sub-CA의 만료일을 2027년 2월 1일로 공지했습니다. Apple의 만료 공지를 기준으로, 먼저 CI가 사용하는 인증서의 발급자를 확인하고 해당 Sub-CA에서 발급된 인증서만 G2로 교체하십시오. 교체본은 격리된 Mac CI 작업에서 서명과 공증까지 확인해야 합니다.
증상: 빌드는 성공해도 배포 서명과 설치 패키지의 유효성을 놓칠 수 있습니다. 빠른 대응: 인증서 발급자와 산출물 종류를 나눈 뒤 영향받는 설치 패키지는 마감일 전에 다시 서명하고, 이미 안전한 타임스탬프가 있고 공증된 Mac 앱은 이번 만료만을 이유로 다시 서명하지 않아도 됩니다.
이 글은 Developer ID Application 또는 Developer ID Installer 인증서를 쓰는 앱 개발자, CI와 키체인을 관리하는 엔지니어, 배포 산출물을 승인하는 담당자를 위한 실행 절차입니다. 인증서 교체보다 먼저 해야 할 범위 확인부터, 정식 노드에 반영한 뒤의 재점검까지 다룹니다.
마지막 업데이트: 2026년 11월 7일. 날짜와 처리 범위는 Apple 만료 공지, 인증서 교체 안내, Developer ID 중간 인증서 안내를 기준으로 확인했습니다.
먼저 산출물별 만료 영향을 분리합니다
이번 변경은 모든 Mac 앱과 배포 파일을 일괄 재서명하라는 뜻이 아닙니다. Apple 안내에 따라 설치 패키지와 앱 번들을 별도로 판단해야 합니다. 특히 Developer ID Installer로 서명한 .pkg와 Developer ID Application으로 서명한 앱은 인증서 용도가 다르므로 같은 검사 결과로 처리하지 마십시오.
| 산출물 또는 인증서 | 우선 판정 | 검수 점수와 다음 조치 |
|---|---|---|
기존 Sub-CA가 발급한 Developer ID Installer 서명의 .pkg | 만료 영향 확인 대상입니다. | 위험도 높음: 마감일까지 G2 발급 인증서로 다시 서명하고 설치 검사를 완료합니다. |
| 기존 Sub-CA가 발급한 Developer ID Application 서명의 Mac 앱 | 앱의 공증 및 안전한 타임스탬프 상태를 확인합니다. | 위험도 조건부: 이미 공증됐고 안전한 타임스탬프가 있으면 이번 만료만으로 재서명하지 않습니다. |
| G2 발급 인증서로 서명한 결과물 | CI가 실제 새 인증서를 불러왔는지 확인합니다. | 위험도 낮음: 서명, 공증 제출, 공증 결과 확인을 각각 기록합니다. |
CI가 사용하는 인증서의 발급자를 확인합니다
Developer ID Certification Authority G2인지 확인할 때 만료 날짜만으로 결론을 내리면 안 됩니다. 인증서 유효기간은 점검을 시작할 단서일 뿐입니다. 인증서의 Issuer와 용도, 그리고 실제 빌드 작업이 참조하는 키체인을 함께 대조해야 합니다.
어떤 Sub-CA가 발급했는지 확인하는 방법
개발자 계정의 Certificates, Identifiers & Profiles에서 각 인증서의 종류와 발급 정보를 확인하십시오. 이어서 CI 설정에서 서명 ID, 키체인 경로, 프로비저닝 및 인증 정보가 호출되는 위치를 목록화합니다. 로컬 개발자 계정에 보이는 인증서와 CI 작업 계정이 실제 사용하는 인증서가 다를 수 있으므로 둘을 같은 것으로 간주하지 마십시오.
Mac의 키체인 접근에서 해당 인증서를 내보낸 뒤, 인증서 형식에 맞춰 발급자 정보를 확인할 수 있습니다. PEM 형식이면 다음과 같이 검사합니다.
openssl x509 -in developer-id.cer -noout -issuer -subject -dates
DER 형식 파일이라면 -inform DER 옵션을 추가합니다. 인증서 이름이나 표시된 만료일만으로 기존 Sub-CA 발급 여부를 확정하지 말고, 출력된 Issuer를 Apple의 Developer ID 인증서 설명 및 중간 인증서 안내와 대조하십시오. CI에서는 security find-identity -v -p codesigning으로 서명 가능한 항목을 살펴보고, 저장소의 빌드 설정과 작업 스크립트가 같은 인증서를 선택하는지도 확인합니다.
주의: 인증서와 개인 키는 한 쌍으로 관리해야 합니다. Issuer 확인을 위해 인증서를 내보내더라도 개인 키를 로그, 아티팩트 또는 작업 출력에 포함하지 마십시오.
산출물별 재검수 기준을 정합니다
교체 작업을 시작하기 전에 합격 기준을 산출물 단위로 적어 두십시오. 서명 명령이 성공했다는 기록 하나만으로는 공증이나 설치 검증까지 통과했다고 볼 수 없습니다.
.pkg설치 패키지: Developer ID Installer 용도의 G2 인증서로 서명됐는지 확인합니다.pkgutil --check-signature결과와 실제 설치 검사를 보관하고, 공증을 사용하는 릴리스라면 제출 상태와 결과도 별도 기록으로 남깁니다.- Mac 앱: Developer ID Application 서명, 공증 결과, 안전한 타임스탬프를 각각 확인합니다.
codesign -dv --verbose=2로 서명 정보를 확인하고,spctl --assess또는 Apple 도구로 배포 적합성을 점검합니다. 적용할 검사 방식은 앱의 배포 형태에 맞춰 정하십시오. - 공증 증거: 공증 제출 성공과 공증 결과 확인은 서로 다른 증거입니다.
notarytool의 제출 결과를 저장하고, 작업 환경에 맞는 Apple 공증 검사 절차로 최종 상태를 확인합니다. Apple의 명령줄 공증 흐름을 참고하십시오. - 서명 증거: 실행 로그에는 인증서 이름, 산출물 식별 정보, 작업 계정, 검사 결과를 남기되 비밀 정보는 제외합니다. Apple 코드 서명 검사 안내에 따라 서명 자체와 검증 결과를 나눠 보관합니다.
G2 대체 인증서를 준비하고 키체인 전달을 점검합니다
기존 인증서와 새 인증서를 용도별로 대응시키십시오. Developer ID Application은 앱 서명용이고 Developer ID Installer는 설치 패키지 서명용입니다. 한 종류의 인증서를 다른 용도에 대신 사용할 수 있다고 가정하지 마십시오.
Apple의 Developer ID 인증서 교체 지침에 따라 대체 인증서를 만들 때 G2 Sub-CA를 선택하고, 필요한 용도별 인증서를 각각 발급합니다. 이어서 개인 키가 포함된 인증서가 지정된 CI 실행 계정의 키체인에 전달됐는지, 잠금 해제와 접근 제어가 자동화 작업에서 기대한 대로 작동하는지 확인합니다.
인증서만 추가한 뒤 끝내지 말고, 빌드 설정과 비밀 정보 저장소가 이전 서명 ID를 계속 가리키는지 검색하십시오. 실행 중인 작업이 새 인증서와 개인 키를 실제로 선택해야 교체가 완료된 것입니다. 구버전 Xcode나 빌드 도구의 제한은 추측하지 말고 Apple의 최신 인증서 교체 안내와 해당 환경에서의 실행 결과로 판단하십시오.
격리된 Mac CI 작업에서 서명과 공증을 시험합니다
프로덕션 배포 노드를 바로 변경하지 말고, 정식 작업과 동일한 실행 계정, 키체인 설정, 서명 단계, 공증 인증 정보를 사용하는 격리 작업을 만드십시오. 개인 개발자 계정에서 수동으로 서명한 성공 기록은 CI 승인 증거가 아닙니다.
- 정식 파이프라인에서 사용하는 저장소 상태와 서명 설정을 격리 작업에 복제합니다.
- 작업 계정으로 G2 인증서와 개인 키를 읽을 수 있는지 확인하고, 서명 ID가 의도한 용도인지 대조합니다.
- 테스트용 앱 또는 패키지에 실제 CI 작업을 통해 서명한 뒤 인증서 발급자와 서명 정보를 검사합니다.
- 공증 제출을 실행하고, 제출 성공 로그와 공증 결과 확인 기록을 별도 보관합니다.
- 결과물을 배포 방식에 맞춰 검증합니다. 앱은 공증 및 타임스탬프 조건을,
.pkg는 Installer 서명과 설치 검사를 확인합니다. - 로그에서 개인 키나 비밀 정보가 노출되지 않았는지 살펴보고, 실패 시 기존 릴리스 경로로 돌아갈 수 있는지 확인합니다.
정식 노드 반영과 만료 재점검을 마칩니다
격리 작업이 통과하면 노드별로 인증서 참조를 업데이트합니다. 릴리스 설정을 한꺼번에 바꾸기보다 배포 경로를 나눠 반영하고, 되돌릴 수 있는 기존 경로와 전환 기록을 보관하십시오. 최종 승인 기록에는 인증서 용도와 Issuer, 작업 계정, 서명 검증, 공증 결과, 산출물 검사를 포함합니다.
Developer ID 인증서의 발급자와 유효기간은 개발자 계정에서 다시 확인합니다. 2027년 2월 1일 마감 전에 기존 Sub-CA가 발급한 인증서로 서명된 설치 패키지가 배포 후보에 남아 있지 않은지 검색하십시오. 앱은 공증 및 안전한 타임스탬프 상태를 확인해 재서명 여부를 결정하고, G2 인증서의 후속 갱신 알림은 Apple 지침에 따라 운영 일정에 등록합니다.
서명 검수만을 위해 짧게 Mac 환경이 필요한 팀은 Mac 구매, 기존 CI 노드 확장, 원격 Mac 임대를 비교할 수 있습니다. 구매는 장기간 고정된 사용에 적합할 수 있지만 초기 하드웨어 지출과 유지 관리가 따르고, 기존 CI 노드는 당장 쓸 수 있어도 격리 시험 자원과 운영 부담을 확보해야 합니다. 원격 Mac 임대는 일시적인 교체 검수에 활용할 선택지지만, 장기 상시 부하나 물리 장치 연결이 필요한 팀에는 맞지 않을 수 있습니다. MACGPU의 Mac 환경 안내를 검토한 뒤, 인증서 취급 정책과 필요한 접근 방식을 직접 확인하고 적합성을 판단하십시오.