签名一个mobileconfig

鉴于我们的设备和MDM server之间已经可以通信,并能完成相应的锁屏、擦除数据、查询设备信息等功能,但是,我们在安装了mobileconfig后,返现配置描述文件打开显示 “unsigned” 或者“尚未签名”这样的情况,所以接下来的工作就是让我们的mobileconfig文件看起来更加安全一些。

一、标题借助于强大的github,找到了一个python脚本进行签名

地址:https://github.com/nmcspadden/ProfileSigner
profile_signer.py与 mobileconfig 放在同一目录,终端进入目录执行
首先cd xxx(路径)到目标目录之后
1.签名一个mobileconfig

./profile_signer.py -n "iPhone Distribution: Chenzhou Mei Tuo Network Co., Ltd. (NFCZGWSA8V)" sign udid.mobileconfig udidSign.mobileconfig

2.加密一个mobileconfig

./profile_signer.py -n "iPhone Distribution: Skyfox Network Technology Co., Ltd." encrypt udid.mobileconfig udidSign.mobileconfig

3.签名并且加密一个mobileconfig

./profile_signer.py -n "iPhone Distribution:Skyfox Network Technology Co., Ltd." both udid.mobileconfig udidSign.mobileconfig

"Skyfox Network Technology Co., Ltd."为你的证书在钥匙串中的全名,选择证书=>显示简介=>复制常用名称加上引号即可,比如
“iPhone Developer: jakey.shao [email protected]
“iPhone Distribution: Skyfox Network Technology Co., Ltd.”

签名一个mobileconfig_第1张图片
如果能正确读取到证书,会提示如上图所示,点击允许即可!
(但是这种签名在iOS高系统版本的手机上依然会出现尚未验证的问题、所以这种老办法舍弃)

二、使用证书进行签名(即可使用iOS开发者证书,也可以使用ssl证书)

1.从钥匙串(keychain)中导出证书
实用工具->钥匙串访问->选择要导出的开发者证书,导出生成p12文件 InnovCertificates.p12
然后转换成 InnovCertificates.pem 文件
实用工具->钥匙串访问->选择要导出的证书,导出生成p12文件 InnovCertificates.p12
p12在线转换pem https://www.sslshopper.com/ssl-converter.html

2.从钥匙串(keychain)中导出appword证书为pem文件
签名一个mobileconfig_第2张图片
最后执行命令即可
(可以根据自己的文件名字来修改下面的命令,也可以直接将命令中使用的名字作为文件的名字)

openssl smime -sign -in Example.mobileconfig -out SignedVerifyExample.mobileconfig -signer InnovCertificates.pem -certfile root.pem -outform der -nodetach

使用ssl证书签名
申请ssl证书成功以后下载证书(最好打包全部下载)
比如我这边是Apache
得到3个文件
其中ca-bundle为证书颁发机构的根证书,双击成功后在苹果的钥匙串文件中点击导出为pem文件即可

ssl证书
执行命令

openssl smime -sign -in unsigned.mobileconfig -out signed.mobileconfig -signer mbaike.crt -inkey mbaike.key -certfile ca-bundle.pem -outform der -nodetach

注意事项

1、描述文件为获取设备信息那描述文件中的回调地址必须为https
2、要用301重定向签名一个mobileconfig_第3张图片

你可能感兴趣的:(iOS开发日常)