Your private key is generated in this browser and stored in your device's OS keychain — it never leaves your device. Only a certificate signing request is sent to entityOS — we sign it with the private CA and return your certificate ready to install.
Provided by your system administrator.
Embedded as the Subject Alternative Name in your certificate.
Password:
Your .p12 file has been downloaded automatically. If not, download it here.
Optional
Your certificate was issued by the entityOS Certificate Authority (CA). Install the CA certificate once to trust it — the red warning will disappear and your certificate will be verified automatically.
macOS: Double-click the downloaded .pem → Keychain Access → expand Trust → set When using this certificate to Always Trust. Windows: Double-click → Install Certificate → Place in Trusted Root Certification Authorities. macOS: Double-click the downloaded .pem → Keychain Access → expand Trust → set When using this certificate to Always Trust. | Windows: Double-click → Install Certificate → Place in Trusted Root Certification Authorities.
Under the hood
Your browser uses the Web Cryptography API (window.crypto.subtle) to generate an ECDSA P-256 key pair. The private key is stored in your device's OS keychain after install — it never leaves your device, not even to entityOS.
The browser constructs a PKCS#10 CSR containing your public key, a unique identity derived from your security code, and your email address as a Subject Alternative Name. Only the CSR — never the private key — is transmitted to entityOS.
The entityOS Lambda validates your security code and submits the CSR to AWS Private Certificate Authority. The CA signs your public key, producing a trusted X.509 client certificate valid for 5 days by default (configurable). A binding record is written to encrypted S3 storage.
The signed certificate is returned to your browser, which packages it with your private key into a PKCS#12 (.p12) file — the universal format for OS certificate stores. Install it once and your browser presents it automatically on every entityOS mTLS connection.