Safari获取UDID需要安装.mobileconfig文件,

Safari获取UDID需要安装.mobileconfig文件,
但是,我们在安装了.mobileconfig后,返现配置描述文件打 开显示“unsigned” 或者“尚未签名”这样的情况,所以接下来的工作就是让我们的.mobileconfig文件看起来更加安全一些。

.mobileconfig签名网络上大多都是使用ssl证书进行签名,可以参考

http://www.rootmanager.com/iphone-ota-configuration/iphone-ota-setup-with-signed-mobileconfig.html

本文主要讲,使用苹果开发者证书进行签名达到目的,本文两种方法,一种是刀耕火种的一步步操作,一种使用脚本签名

一.导出苹果证书进行签名

1.从钥匙串(keychain)中导出证书

实用工具->钥匙串访问->选择要导出的证书,导出生成p12文件 InnovCertificates.p12

然后转换成 InnovCertificates.pem 文件

2. p12换成pem格式方法

p12在线转换pem   https://www.sslshopper.com/ssl-converter.html

(证书)cer.p12文件 转cer.pem文件

openssl pkcs12 -clcerts -nokeys -out cer.pem -in cer.p12

(私钥)key.p12文件转key.pem文件

openssl pkcs12 -nocerts -out key.pem -inkey.p12

3.下载 Apple Root Certificate 和 Apple Intermediate Certificate

(对于本篇文章 .mobileconfig文件的验证我使用了苹果的以下两个证书.

Apple Root Certificate(苹果根证书)

Apple Application Integration Certificate (苹果应用集成证书 )

你也可以使用这些证书或者苹果提供的其他证书 地址: http://www.apple.com/certificateauthority/

下载的文件中包括证书(cer)和私钥(key)

(在命令行中读取证书,参考链接 info.ssl.com/article.aspx?id=12149)

根据这个文件我们可以解压出来证书.

1

2

3

4

5

6

解压 Apple Root Certificate证书. 然后解压Apple Intermediate Certificate

openssl x509 -inform DER -outform PEM -in AppleIncRootCertificate.cer -out root.crt.pem

openssl x509 -inform DER -outform PEM -in AppleAAICA.cer -out Intermediate.crt.pem

在文本编辑器中打开两个解压出来的文件

复制并且粘贴Intermediate.crt.pem 到 root.crt.pem的开始位置,保存,然后你的root.crt.pem文件就是两个证书合并的结果

4.签名和验证.mobileconfig文件

上边所有文件准备号后,运行命令行工具,运行以下命令

1

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

结果就是签名并且验证后的 .mobileconfig文件

二.脚本签名

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

地址:https://github.com/nmcspadden/ProfileSigner

1.签名一个mobileconfig

profile_signer.py与 mobileconfig 放在同一目录,终端进入目录执行

1

./profile_signer.py -n "3rd Party Mac Developer Application" sign AcrobatPro.mobileconfig AcrobatProSigned.mobileconfig

2.加密一个mobileconfig

1

./profile_signer.py -n "3rd Party Mac Developer Application" encrypt AcrobatPro.mobileconfig AcrobatProEnc.mobileconfig

3.签名并且加密一个mobileconfig

1

./profile_signer.py -n "3rd Party Mac Developer Application" both AcrobatPro.mobileconfig AcrobatProBoth.mobileconfig

"3rd Party Mac Developer Application "为你的证书在钥匙串中的全名,选择证书,显示简介,复制常用名称即可,比如

iPhone Developer: jakey.shao [email protected] (W26TLNwW63)

iPhone Distribution: XXX Network Technology Co., Ltd. (L5T8PFT6T5)

三.Safari安装

发现未签名变成了已签名,红色变成了绿色啦.安装的时候没有警告啦...茉莉花香啊!!!

传送门 通过Safari浏览器获取iOS设备UDID(设备唯一标识符)

参考文章&英文原文:

http://stackoverflow.com/questions/28355902/ios-mobileconfig-file-still-not-verified-but-close-i-see-certification

转载请注明:天狐博客 » 为iOS的mobileconfig文件进行签名

时间: 2024-10-12 20:16:28

Safari获取UDID需要安装.mobileconfig文件,的相关文章

从”茄子快传”看应用程序怎样获取手机已安装程序的apk文件

"茄子快传"是联想开发的一款近距离文件共享软件.它通过wifi-direct(速度飞快,不须要联网)或者普通的网络(速度慢)在不同手机间传递文件. 不知为何.它就火了起来,火的也飞快.当中.共享传输已安装程序文件apk这一功能引起了我强烈的兴趣. 我们知道android对每一个应用的权限做了非常苛刻的控制,每一个应用程序有自己的用户id,每一个应用程序仅仅能訪问自己的数据,比方程序com.android.calculator计算器程序仅仅被同意訪问/data/data/com.andr

从”茄子快传”看应用程序如何获取手机已安装程序的apk文件

"茄子快传"是联想开发的一款近距离文件共享软件,它通过wifi-direct(速度飞快,不需要联网)或者普通的网络(速度慢)在不同手机间传递文件.不知为何,它就火了起来,火的也飞快.其中,共享传输已安装程序文件apk这一功能引起了我强烈的兴趣. 我们知道android对每个应用的权限做了很苛刻的控制,每个应用程序有自己的用户id,每个应用程序只能访问自己的数据,比如程序com.android.calculator计算器程序只被允许访问/data/data/com.android.cal

获取UDID

UDID是什么? 作为iOS开发者都不用废话,秒懂的,言归正传:UDID是一种iOS设备的特殊识别码.除序号之外,每台iOS装置都另有一组独一无二的号码,我们就称之为识别码( Unique Device Identifier, UDID ). 每个iOS 开发者在缴交99美元年费的同时,都会得到100个beta test名额,可以让软件开发者输入100台iOS装置的UDID. 有意成为beta tester的人,只需向开发者提交UDID,经过输入及制成一个描述档之后,该手机就可以使用由同一开发者

iOS证书、签名、安装描述文件

1.Certificates(证书) 证书是用来给应用程序签名的,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整,未修改的.在Xcode Build Setting的Code Siging Identity中,你可以设置用于代码签名的证书. 证书主要分两类:Development和Production,Development证书用来开发和调试程序,Production证书用来发布应用程序. Development App Development:Sign development

快捷地安装apk文件到android手机中

在pc中,在没有安装各种手机助手的情况下,android程序员如何快捷地(对apk文件双击,即可自动安装,不用手动输命令)安装apk文件到android手机中? 可以使用以下方法:使用批处理文件 + Quick Batch File (De)Compiler 步骤: 1.编写以下dos命令,并保存为apk.bat @echo off echo 正在连接手机... adb wait-for-device echo. rem 获取双击apk文件的绝对路径 set apk=%* echo 正在安装:%

虚拟机中安装GHO文件配置说明

前言: 我们知道如何使用虚拟机安装ISO的文件,这个比较简单:但是我们如果安装GHO的文件呢?工作中有的时候需要还原客户环境的系统镜像去寻找问题,这就使用到GHO的文件系统镜像了.那么我们该如何将GHO文件安装到虚拟机呢?表急~~接下来咱们就唠唠. 前提: 1.  获取到GHO的镜像文件 2.  主机安装VMware (这可以直接从网上下载,百度一大堆,这里不做说明) 3.  装备一个U盘启动盘(这个也请自行百度,非常easy) 配置步骤: 第一步:首先打开虚拟机,点击文件>新建虚拟机,如下图:

python怎样安装whl文件

我们先找个whl文件,我们在百度搜索python whl,   打开连接我随便下载一个,但是要找到符合自己python版本,下载了一个组件多线程的功能   下载完成以后打开cmd,用pip安装wheel  执行命令pip install wheel,如果提示pip"不是内部命令",先安装pip   安装wheel以后在去安装whl文件,先切换到桌面,找到要安装的文件, cd Desktop 执行命令 5 执行命令 pip install yappi-0.98-cp27-cp27m-wi

java 获取文件名(不包括文件的后缀)和文件重命名

获取文件名(不包括后缀) originalFileName.substring(0, originalFileName.lastIndexOf(".")) 文件重命名 public void renameFile(String file, String toFile) { File toBeRenamed = new File(file); //检查要重命名的文件是否存在,是否是文件 if (!toBeRenamed.exists() || toBeRenamed.isDirector

JAVA之IO技术-获取指定目录下的文件夹和文件的File对象或是字符串名称。

package ioTest.io3; /* * 获取指定目录下的文件夹和文件的File对象或是字符串名称. * 也可以通过filter获取指定的文件夹或者指定类型的文件 * 这里面需要做一个总结,如何利用jdk的源码去理解不熟悉的方法的应用. */ import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; public class FileDemo2 { public static void m