Certificates and Private Keys
Digital certificate files may or may not include a private key, depending on their format and intended use. Here's a breakdown:
Certificate File Formats That Do Not Include a Private Key
These formats typically contain only the public certificate (and sometimes a certificate chain):
Format |
Extension |
Description |
X.509 PEM |
.cer , .crt , .pem
|
Base64-encoded certificate between -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- .
|
X.509 DER |
.cer , .der
|
Binary-encoded certificate without private key.
|
PKCS#7 (CMS) |
.p7b , .p7c
|
May contain a certificate or chain, but no private key.
|
Certificate File Formats That Include a Private Key
Format |
Extension |
Description |
PKCS#12 / PFX |
.pfx , .p12 |
Binary format that bundles the certificate, private key, and optionally a chain. Usually password-protected. |
PEM with private key |
.pem , .key |
May include both certificate and private key as Base64 text. |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Private Key Storage Locations (Platform-Specific)
Windows (CryptoAPI / CNG)
- Certificates can be stored in the Windows Certificate Store (using MMC or Certmgr).
- Private keys are often stored in a CSP or KSP and are non-exportable unless explicitly allowed.
- Examples:
MY
(Personal) store for user-level certs.
- Certificates may be backed by TPM, smart card, or HSM.
macOS (Keychain Access)
- Certificates and their private keys are stored in the Keychain.
- System and user keychains are separated.
- Access controls (e.g., biometric prompts) may protect use of the private key.
Smart Card or HSM
- Private keys never leave the device.
- Operations like signing or decryption are performed inside the secure element.
- Access typically uses a PKCS#11 interface or proprietary API.
- Example: A certificate stored on a YubiKey or REALSEC HSM is publicly accessible, but private key use requires PIN and cannot be exported.
Summary
File Contains Private Key? |
Format Examples |
No |
.cer , .crt , .der , .p7b |
Yes |
.pfx , .p12 , .pem (with key), .key |
Platform |
Key Storage Location |
Windows |
Certificate Store, CSP/KSP |
macOS |
Keychain |
Smart Card |
PKCS#11 or native interface |
HSM |
Enforced secure hardware storage |