基本以前の概念について: 参照する必要があります暗号化、署名、証明書の基本概念とプロセス
ご存知のとおり、iOS では開発とリリースの両方に多数の証明書が必要です。では、各証明書の役割は何で、どのように生成されるのでしょうか?これがこの章の主要な内容です。
注: Apple 自体が CA 証明書の権威ある認証局です。
1. 証明書一覧
開発には次の証明書が含まれている必要があります。
- Mac上生成
CertificateSigningRequest.certSigningRequest
文件 - 上传刚刚的
.certSigningRequest
文件 生成ios_development.cer
\ios_distribution.cer
证书文件(cer证书
) - デバイスの登録とアプリIDの追加
- 获得
*.mobileprovision
文件 (也就是pp证书
)
2. パノラマ – 全体的な状況を見る
まず全体像を見て、それからステップごとに説明しましょう。
3. キーリスト
使用される主なキーキャラクターは次のとおりです。
- Macの公開鍵と秘密鍵
- Apple の秘密キー (使用するには Apple の公式 Web サイトにアップロードする必要があります。個人はそれを持っていません)。
- iOS デバイスに含まれる Apple の公開キー
4. .certSigningRequest ファイル
この手順で生成されたファイル CertificateSigningRequest.certSigningRequest
は、Mac デバイスの 公開キー に対応します。秘密鍵の場所は気にしません。
5.cer証明書
前の手順を Apple の公式 Web サイトにアップロードした後.certSigningRequest
、Apple は独自の秘密キーを使用します。アップロードされたファイル (実際には Mac の 公開キー ) に署名し、
して .cer
を取得します。証明書。
.cer
証明書には Mac の公開キー + 署名 + Mac 関連情報などが含まれます。
つまり、全体像に対応すると、次のようになります。
6. .mobileprovision ファイル (例:pp证书
)
この手順では、.cer
証明書+ App ID
+ 可安装的设备
(Appsore および他の公開チャネルにはこのオプションがありません)
その後、Apple は独自の 私钥
で署名します。最後に pp 証明書を生成します
注:
App ID
には、現在のアプリケーションのすべての権限情報などが含まれます。
つまり、全体像に対応すると、次のようになります。
同様に、pp ファイルには cer ファイルのすべての情報が含まれていることがわかります。
7. ipaパッケージ内のファイル内容
ファイルのサフィックスを .ipa
から .zip
に変更して解凍します。
次の構造がわかります:
3 つの部分で構成されます: CodeResources + pp + 其他
- 内部の CodeResources ファイルは、実際には plist ファイルです。これには、現在のアプリの他のすべてのファイル (さまざまなリソース ファイル、nib、png、html、mach-o) のハッシュ値が含まれており、各ファイルがハッシュ値を生成した後、Mac の公開キーで署名されます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>AppIcon20x20@2x.png</key>
<data>
4ks7eY796HDUyqe3inCSmyrYWus=
</data>
<key>AppIcon20x20@2x~ipad.png</key>
<data>
4ks7eY796HDUyqe3inCSmyrYWus=
</data>
<key>AppIcon20x20@3x.png</key>
<data>
NPu1GSfNuEUrnv4Xv66KqOijUmw=
</data>
<key>AppIcon20x20~ipad.png</key>
<data>
xaqeRlvoMr4z4838PEXoH2pg5h4=
</data>
<key>AppIcon29x29.png</key>
<data>
2bwmXULR6f8MkodULuPJdsVhi8Q=
</data>
......
- pp ファイルには、アプリの権限、appID、および cer 証明書 (mac 公開キー) が含まれています。
これは、ipa ファイルのコンポーネントを表す全体図内のこの部分にも対応します。
8. プロセス全体
パート 2 の全体像を捉えて、最後まで読んでみましょう。
図の手順 1 ~ 6 に従います。
- すべてのアプリ ファイルを暗号化
hash
し、mac 私钥
を使用して暗号化します。CodeResources
ファイルを生成します。 - Apple の公式 Web サイトで、Apple で 証明書
mac的公钥
(.certSigningRequest ファイル) を行います。生成 署名私钥
.cer
- 2 の
.cer
証明書、デバイス、appid、アプリの権限を入力し、apple 私钥
を使用して署名します。 pp ファイルを生成し、その pp ファイルを ipa パッケージに入れます。 - iOS デバイスでは、
apple 公钥
を使用して pp ファイルの署名を確認します。そして、現在のアプリのデバイス、ID、権限を一つ一つ確認し、どれか一つでも失敗するとインストールは失敗します。 - iOS デバイスでは、起動時に
apple 公钥
を使用して手順 4 で取り出した cer 証明書を確認し、Mac公钥
も取り出します。失敗した場合、実行は失敗します。 - iOS デバイスで実行を開始するときに、ステップ 5 の
Mac 公钥
を使用して、ステップ 1 で生成されたファイルを復号化します。CodeResources
ファイルが改ざんされている場合は、取り出したすべてのファイルのhash
値を 1 つずつ確認します。 1 つの項目が失敗すると、問題が発生します。
注: 一部のノートには MJ 教師の学習資料が含まれています。