탕구리's 블로그

인증서와 프로비저닝 프로파일(Provisioning profile)의 상관관계는? 본문

Conception

인증서와 프로비저닝 프로파일(Provisioning profile)의 상관관계는?

탕구리당 2020. 9. 17. 23:53
반응형

"애플에서 사용하는 인증 체계와 관련된 개념에 대해서 정리를 해두기 위한 포스팅입니다."

 

 

오잉또잉 상관관계?

 

헷갈려도 너무 헷갈린다. 자주 하는 작업이 아니라 그런지 매번 헷갈린다.
그래서 이참에 정리를 좀 해두고자 오랜만에 포스팅을 하게 되었다. (사실 그냥 요즘 만사가 귀찮고...귀찮고.. 귀찮았다)

주절주절 그만떠들고 본론으로 들어가 보자!

 

 

간단하게는?

우선 애플(앱 스토어)에 앱을 게시하기 위해서는 애플에 개발자에 대한 인증과 앱에 대한 인증을 받는 과정이 필요합니다. 애플에 돈을 내고 애플 개발자 프로그램을 구매하게 되면 애플 디벨로퍼스에서 인증서 발급이 가능합니다.

 

 

말은 쉽지만 중간중간에 많은 비밀이 숨어 있습니다. 이런 부분이 굉장히 헷갈리게 하는 주범이었는데요. 이참에 머릿속을 정리해 보겠습니다.

 

과정을 살펴보면 아래와 같은 순서로 진행할 수 있습니다.

 

1. 인증서(Certification)

인증서의 역할은 앞서 말한 것처럼 개발자 혹은 게시자가 애플에서 인증된 사람이라는 것을 증명해줍니다.

즉, 개발자는 애플의 인증을 받고 앱을 실행(설치) 할 수 있게 됩니다.

 

(1) 인증서를 받기 위해서는 키체인 앱에서 CSR(Certificate Signing Request) 파일을 생성을 위한 준비(키 발급).

(2) 생성한 키체인을 통해 생성한 키를 가지고 애플에 전송할 CSR 파일을 생성합니다.

(3) CSR 파일을 애플에 업로드하면 애플은 인증서를 발급해줍니다.

 

 

** 키체인 앱은 공개키와 개인키를 생성하는 역할을 합니다.

** CSR 파일은 인증자의 이름, 이메일, 공개키를 포함하며 개인키를 통해 sign 됩니다.

 

 

2. Provisioning Profile

"인증서 = 개발자 인증"이라면 "Provisioning Profile"은 디바이스가 개발자를 신뢰할 수 있는지 연결해주는 역할이라고 생각하면 편할 것 같습니다. 

 

Provisioning Profile에는 인증서, Appid, UUID 등의 정보를 포함하고 있으며, 컴파일 시 해당 파일을 통해 개발자를 신뢰해도 되는지 확인한 후 디바이스에 설치를 진행하게 됩니다. 물론 검증하는 단계를 위해서는 디바이스에 해당 Provisioing profile을 가지고 있어야 합니다. Provisioning Profile은 앱 별로 생성 가능하기 때문에 개발자는 복수개의 Provisioning Profile을 가질 수 있습니다. 

 

 

 

위에서 나온 개념을 정리해보면 총 3가지입니다.

1. CSR(Certificate Signing Request)을 위한 키 생성 => 개발자 인증 요청을 위한 기반 자료를 생성하는 것! 

2. 인증서 => 애플로부터 신뢰할 수 있는 개발자임을 인증받은 증거물!  

3. provisioning profile => 디바이스에 앱을 설치하기 전 신뢰할 수 있는 개발자가 만든 건지 확인을 위한 파일!

 

 

간단하게 정리하면 이렇게 될 것 같습니다.

오늘도 고생하셨습니다. 탕빠이!

 

반응형
Comments