You're in the middle of a certificate update or deployment, and you hit 0X80093002. It's frustrating because the error message tells you nothing useful.
Let's cut through the noise. The error code OSS_NEGATIVE_UINTEGER (0X80093002) comes from the OSS ASN.1 parser inside Windows. What's actually happening here is that when Windows tries to decode an ASN.1 structure — usually a certificate or a PKCS#7 blob — it encounters a field that's defined as UNSIGNED INTEGER in the encoding rules, but the actual value stored is negative. The parser sees a sign bit where none should exist, and it throws this error.
The Fix: Rebuild the Certificate Store
Skip all the other suggestions you'll find online about registry tweaks or group policy changes. They don't touch the root cause. The real fix is rebuilding the certificate store that holds the corrupted certificate data. Here's the exact process:
- Open an elevated Command Prompt (run as Administrator).
- Stop the Certificate Propagation service:
net stop CertPropSvc - Delete the per-user certificate stores that might have the corrupted blob. Run
certutil -delstore -user My. This clears the Personal store for the current user. - Restart the service:
net start CertPropSvc - Reimport the certificate that was failing. Use
certutil -importpfx -user My path\to\cert.pfx. If it asks for the password, provide it.
If your error occurs at the machine level (like during IIS binding), replace -user with -machine and use the Local Machine store: certutil -delstore -machine My then certutil -importpfx -machine My path\to\cert.pfx.
Why This Works
The reason step 3 works is that the certificate store itself got into an inconsistent state. What's happening behind the scenes is that Windows uses a complex binary format for the store files (like %APPDATA%\Microsoft\SystemCertificates\My\Certificates). When a certificate import fails partway — maybe the network dropped, or you interrupted the process — the store ends up with a partial ASN.1 blob that Windows can't decode. The parser tries to interpret garbage bytes as an integer, gets a negative value, and you see 0X80093002.
Deleting the store forces Windows to recreate it from scratch on the next import. The new store file starts clean, without the corrupted fragment. That's why reimporting the same certificate works after the delete — the certificate itself is fine, your store was the problem.
Less Common Variations of This Issue
Sometimes the error pops up with a different trigger. Here's what I've seen:
- Active Directory Certificate Services enrollment. If you're on a domain controller and using auto-enrollment, the error might appear in the event log (Event ID 53, source: CertificateServicesClient). In that case, the corrupted store is in the machine account's store, not the user's. Run
certutil -delstore -machine Myand then force re-enrollment withgpupdate /forcefollowed bycertreq -autoenroll. - Azure AD sync with certificate-based authentication. I've seen this with ADFS and AAD Connect when a certificate used for token signing gets reimported via PowerShell. The fix is the same — clear the machine store. But you also need to remove the old certificate from Azure AD using
Remove-AzureADSSLCertificateafter clearing the local store. - Outlook or Exchange certificate errors. The error can show up in Exchange 2016/2019 when the SMTP service tries to load the certificate for TLS. Here, the store is the Exchange certificate store, which is separate from the Windows one. Use the Exchange Management Shell:
Remove-ExchangeCertificate -Thumbprint [thumbprint] -Confirm:$falsethen reimport the .pfx withImport-ExchangeCertificate -Server [servername] -FileName [path] -Password (ConvertTo-SecureString [password] -AsPlainText -Force).
If none of these work, check if you're dealing with a third-party certificate that has an unusual ASN.1 encoding. Some vendors encode the serial number as a signed integer, even though X.509 spec says it must be unsigned. That's actually a certificate bug, not a Windows bug. In that case, the fix is to request a corrected certificate from the CA. You can verify this by opening the .pfx in a tool like openssl asn1parse -in file.pfx and looking for a tag 02 (INTEGER) with a leading FF byte. If you see that, the serial number is signed and negative — your certificate is malformed.
Prevention
Stop the error from coming back. Here's what to do:
- Never interrupt certificate imports. If you use PowerShell or certutil, let the command finish before closing the window. Interrupted imports leave partial data in the store.
- Use a clean export. When exporting from the source machine, make sure you include the private key and all intermediate certificates in the chain. Export as PFX, not CER. A missing intermediate can cause a partial import later.
- Validate certificates before import. Run
certutil -v -verify file.pfxbefore importing. This checks the ASN.1 structure and will flag any negative integers before they corrupt your store. - Keep your store small. Windows stores with hundreds of expired certificates are more prone to corruption. Remove old certs with
certutil -delstore -user My [serial]periodically.
That's it. The error is ugly, but the cause is simple: a corrupted store that can't parse a clean cert. Burn the store, reimport, and move on.