Certificate Checker
Check the status of Apple certificates from .p12, .pfx, or .mobileprovision files. Returns certificate details, OCSP revocation status, and entitlements.
Endpoint
POST /api/certificate-checker
Description
Upload a certificate file and get back full details about the signing certificate inside it — who it belongs to, when it expires, whether Apple has revoked it, and (for mobileprovision files) which entitlements are active.
Supports:
.p12/.pfx— PKCS#12 certificate files (password required if protected).mobileprovision— Apple provisioning profiles (no password needed)
Headers
| Header | Value | Required |
|---|---|---|
Authorization |
Bearer <your_api_token> |
Yes |
Accept |
application/json |
Yes |
Content-Type |
multipart/form-data |
Yes |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
file |
File | Yes | A .p12, .pfx, or .mobileprovision file (max 10MB) |
password |
String | No | Password for .p12/.pfx files. Not needed for .mobileprovision. |
Example: Check a P12 File
Request
curl -X POST https://developer.nabzclan.vip/api/certificate-checker \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-F "[email protected]" \
-F "password=mypassword"
Response (200 OK)
{
"success": true,
"file_type": "p12",
"certificate_info": {
"subject": {
"userID": "XXXXXXXXXX",
"commonName": "iPhone Distribution: Your Company Name",
"organizationalUnitName": "XXXXXXXXXX",
"organizationName": "Your Company Name",
"countryName": "US"
},
"issuer": {
"commonName": "Apple Worldwide Developer Relations Certification Authority",
"organizationalUnitName": "G3",
"organizationName": "Apple Inc.",
"countryName": "US"
},
"serial_number": "123456789...",
"signature_algorithm": "sha256WithRSAEncryption",
"validity_period": {
"valid_from": "2025-01-01T00:00:00+00:00",
"valid_to": "2028-01-01T00:00:00+00:00"
},
"public_key_size": 2048,
"fingerprints": {
"sha256": "abcdef1234567890...",
"md5": "abcdef1234567890...",
"sha1": "abcdef1234567890..."
}
},
"certificate_status": {
"status": "Signed"
},
"type": "N/A"
}
Example: Check a Mobileprovision File
Request
curl -X POST https://developer.nabzclan.vip/api/certificate-checker \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
-F "[email protected]"
Response (200 OK)
{
"success": true,
"file_type": "mobileprovision",
"certificate_info": {
"subject": {
"commonName": "iPhone Distribution: Your Company Name",
"organizationName": "Your Company Name",
"countryName": "US"
},
"issuer": {
"commonName": "Apple Worldwide Developer Relations Certification Authority",
"organizationName": "Apple Inc.",
"countryName": "US"
},
"serial_number": "123456789...",
"signature_algorithm": "sha256WithRSAEncryption",
"validity_period": {
"valid_from": "2025-01-01T00:00:00+00:00",
"valid_to": "2028-01-01T00:00:00+00:00"
},
"public_key_size": 2048,
"fingerprints": {
"sha256": "abcdef1234567890...",
"md5": "abcdef1234567890...",
"sha1": "abcdef1234567890..."
}
},
"certificate_status": {
"status": "Signed"
},
"entitlements": {
"Push Notifications": { "status": "active" },
"App Groups": { "status": "active" },
"Associated Domains": { "status": "active" },
"Apple Sign-In": { "status": "active" }
},
"type": "Enterprise Certificate"
}
Certificate Status Values
| Status | Meaning |
|---|---|
Signed |
Certificate is valid and not revoked |
Revoked |
Certificate has been revoked by Apple |
Unknown |
OCSP server returned an unknown status |
OCSP URL not available |
Certificate does not have an OCSP endpoint |
Revoked Response Example
When a certificate is revoked, extra details are included:
{
"certificate_status": {
"status": "Revoked",
"revocation_time": "Feb 7 07:20:00 2026 GMT",
"reason": "certificateHold (0x6)",
"reason_details": "Certificate is temporarily on hold."
}
}
Certificate Type (Mobileprovision Only)
| Type | Meaning |
|---|---|
Enterprise Certificate |
In-house distribution (no App Store, internal use) |
Personal Certificate |
Standard developer certificate (App Store or Ad Hoc) |
N/A |
Returned for .p12 files (type is determined by provisioning profile, not the cert itself) |
Error Responses
Wrong Password (400)
{
"success": false,
"error": "Invalid password or PKCS12 data"
}
Invalid File Type (400)
{
"success": false,
"error": "Invalid file type. Only .p12, .pfx, and .mobileprovision files are allowed."
}
Missing File (422)
{
"message": "The file field is required.",
"errors": {
"file": ["The file field is required."]
}
}
Corrupt or Unreadable File (400)
{
"success": false,
"error": "Plist data not found in the .mobileprovision file."
}