接口简介
该接口用于解析苹果开发者证书(P12 文件)和描述文件(.mobileprovision 文件),并进行OCSP验证以判断证书状态(有效/已吊销/错误)。接口会返回证书信息、描述文件信息以及匹配状态。
请求方式
- 请求方式:POST
- 请求地址:列如:
https://mdu.cc/api/AppleProfileCertCheck
请求头信息
请确保请求头中设置了以下字段,以保证接口正确解析请求和返回JSON数据:
Access-Control-Allow-Origin: *
Access-Control-Allow-Method: POST,GET
Content-type: application/json;charset=utf-8
注意:由于接口处理文件上传,所以建议客户端设置 multipart/form-data 请求头。服务端响应时则返回JSON格式的数据。
请求参数
| 参数名称 | 类型 | 说明 | 是否必传 |
| P12File | File | P12证书文件,需包含私钥的数字证书 | 是 |
| P12PassWord | String | P12证书密码,用于解密证书文件 | 是 |
| MobileProvisionFile | File | 描述文件(.mobileprovision文件),用于解析应用和开发者信息 | 是 |
示例说明:
通过POST提交表单数据,P12File和MobileProvisionFile应作为文件字段上传,P12PassWord作为普通表单字段提交。
返回结果
接口响应为JSON格式,示例响应如下:
{
"code": 200, //状态码,200表示成功
"message": "检测成功", //'检测成功'表示操作成功
"data": {
"certificates": {
"name": "iPhone Distribution: Ministere de I Emploi de la Protection Sociale", //证书名称
"from": "2023-11-16 13:47:52",//证书生效日期
"to": "2026-11-15 13:47:51",//证书过期日期
"unit": "Apple Inc.",//签发机构
"is_revoked": true, //证书是否被吊销,false表示未吊销
"status": "已吊销", //状态,有效 或 已吊销
"fingerprint": "51:F5:F2:7E:83:BD:51:73:BC:87:82:37:1F:24:DD:ED:AF:F4:6B:CD",//证书指纹,用于唯一标识证书
"serial": 76783665671638534154865607128819835567 //证书序列号
},
"mobileprovision": {
"cert_type": "Individual",//Enterprise企业,Individual个人
"developers": [
"开发者账号 (Team ID: VV6YRRU69K)"//配置名称 开发者账号信息,包含Team ID
],
"app_id": "00008130-001845511A02001C65", //应用程序ID
"id": "VV6YRRU69K.com.neicexiahh2303.sign9316",//应用的Bundle ID
"platform": [
"iOS",
"xrOS",
"visionOS"
], //支持的平台,如iOS、xrOS、visionOS
"from": "2025-01-06 12:14:51",//描述配置文件生效日期
"cert_end_date": 281,//描述有效期剩余
"expiration_time": "2025-10-14 12:14:51",//描述配置文件过期时间
"is_expired": false,//配置文件是否过期,false表示未过期
"certificates": [
"00008130-001845511A02001C"
],//关联的证书UDID
"developer_certificates": [
{
"fingerprint": "51:F5:F2:7E:83:BD:51:73:BC:87:82:37:1F:24:DD:ED:AF:F4:6B:CD", //开发者描述指纹
"serial": 76783665671638534154865607128819835567 //描述序列号
}
],
"is_matching": false, //证书和描述是否匹配,false表示不匹配
"uuid": "4cdfe7ea-7073-4f0f-ab81-5217dc48d990", //配置文件的唯一标识符
"version": 1, //配置文件版本
"team_name": "Jing Tong" //团队名称
},
"is_matching": false,//整体证书是否匹配,false表示不匹配
"permissions": { //true代表有权限,false代表无权限
"wifi": true, //WiFi访问
"hotspot": false, //热点
"aps": true, //推送通知
"keychain": true,//钥匙串访问
"debug": false, //调试
"siri": true, //Siri
"health": true, //健康数据
"groups": true, //应用组
"purchase": true, //应用内购买
"domains": true, //关联域
"autofill": true, //自动填充
"class": true, //课堂
"home": true, //家庭
"game": true, //游戏中心
"audio": true, //音频
"multipath": true, //多路径
"networkextension": true, //网络扩展
"nfc": true, //NFC
"vpn": true, //VPN
"wireless": true, //无线配置
"hls_low_latency": false, //低延迟HLS
"health_access": true, //健康数据访问
"extended_virtual_addressing": true, //扩展虚拟地址
"increased_memory_limit": true //增加内存限制
}
}
}
请求示例
示例1:使用 cURL 命令行工具
curl -X POST "https://yourdomain.com/api/verify_cert.php" \
-F "P12File=@/path/to/your_certificate.p12" \
-F "P12PassWord=your_certificate_password" \
-F "MobileProvisionFile=@/path/to/your_mobileprovision.mobileprovision"
示例2:使用 PHP 模拟POST上传
$url = "接口地址";
$postFields = [
'P12File' => new CURLFile('/path/to/your_certificate.p12'),
'P12PassWord' => 'your_certificate_password',
'MobileProvisionFile' => new CURLFile('/path/to/your_mobileprovision.mobileprovision'),
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>


暂无评论内容