2014年3月18日火曜日

iOS: 7.1対応 自己署名証明書でのEnterpriseアプリ配布


Enterpriseアプリ配布でこんなエラーに出会ったら...
 ”....”の証明書が有効ではないため、Appをインストールできません。
 ...に接続できません。

iOS7.1からEnterprise配布がHTTPSでないとインストールできなくなりました。
apacheを自己署名証明書で構成した場合は信頼できない証明書のため、HTTPSでもインストールできません。

iOSデバイスでは"...に接続できません"とそっけなく表示されますが、デバイスをMacに接続し、コンソールログを見るとエラーの理由が分かります。
Xcode ⇨ Window ⇨ デバイス選択 ⇨ 右ペイン左下の△アイコンクリック


itms-services:プロトコルに従ってurl先のplistをダウンロードするときにサーバ証明書が信頼できないエラーが発生しています。safariで直接plistをダウンロードするのであれば、ここで警告が表示され、サーバを信頼すればダウンロードを継続できますが、インストーラの場合は"...に接続できません"を表示して継続できなくなります。

いろいろ試した結果、iPhone Configulatorでサーバのcrtファイルをインストールするmobileconfigを作り、これをメールかWebで配布、各デバイスにインストールするのが順当なようです。

Apple Configuratorではmobileconfigを出力できないようなので、少し古いですがiPhone Configuratorを使いました。

実はhttpsが必要なのはplistのダウンロードだけなので、plistをパブリックな場所に置いてもよれけば、Enterprise app deployment doesn't work on iOS 7.1で紹介されているdropboxのhttpsを利用する方法もあります。

plistだけdropboxに置き、itms-services://?action=download-manifest&url=http:...のリンク先をdropboxからのファイルダウンロードのURLにすることで、インストールが可能になります。
plist内のリンクは社内LANのURLにしておけば、plistをパブリックにしても社外からアプリをインストールすることはできません。

dropboxでなくともiOSに含まれている認証局の証明書であればよいので、自社のSSLサーバにplistだけ置くという方法もあります。

0 件のコメント: