0
面對一個非常奇怪的問題X509Certificate2.Verify()爲有效證書返回false。也許有些人以前已經面對過這種奇怪的情況,並可以對此發出一些啓發。system.security.cryptography.x509certificates無法驗證
我使用makecert產生用於測試目的客戶端證書,它做工精細,我可以讀取的證書....但是校驗功能總是返回false, 我寫這篇文章的CMD:
makecert -r -pe -n "client1" -b 01/01/2005 -e 01/01/2020 -sky exchange -ss certifcat
當我寫:
X509Certificate2 x509_2 = LoadCertificate(StoreLocation.CurrentUser, "client1");
Console.WriteLine("Verify " + x509_2.Verify()); // the output : false
任何機構可以幫助?
編輯: 的的certutil -verify d輸出:\ test.cer:
Issuer:
CN=WWW.AGGREGATEDINTELLIGENCE.COM
Name Hash(sha1): 553fd856f55d46239156546a1693dd5e160f0eed
Name Hash(md5): dec1c115101d31de7502eee9fb7e6e4b
Subject:
CN=WWW.AGGREGATEDINTELLIGENCE.COM
Name Hash(sha1): 553fd856f55d46239156546a1693dd5e160f0eed
Name Hash(md5): dec1c115101d31de7502eee9fb7e6e4b
Cert Serial Number: 8aa4007cd7a02e8045301ccb11369bb2
dwFlags = CA_VERIFY_FLAGS_CONSOLE_TRACE (0x20000000)
dwFlags = CA_VERIFY_FLAGS_DUMP_CHAIN (0x40000000)
ChainFlags = CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT (0x40000000)
HCCE_LOCAL_MACHINE
CERT_CHAIN_POLICY_BASE
-------- CERT_CHAIN_CONTEXT --------
ChainContext.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
ChainContext.dwErrorStatus = CERT_TRUST_IS_UNTRUSTED_ROOT (0x20)
SimpleChain.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
SimpleChain.dwErrorStatus = CERT_TRUST_IS_UNTRUSTED_ROOT (0x20)
CertContext[0][0]: dwInfoStatus=109 dwErrorStatus=20
Issuer: CN=WWW.AGGREGATEDINTELLIGENCE.COM
NotBefore: 1/1/2005 12:00 AM
NotAfter: 1/1/2020 12:00 AM
Subject: CN=WWW.AGGREGATEDINTELLIGENCE.COM
Serial: 8aa4007cd7a02e8045301ccb11369bb2
Cert: c6388297376cfde5742b3bd2a217ba1c728bc005
Element.dwInfoStatus = CERT_TRUST_HAS_EXACT_MATCH_ISSUER (0x1)
Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8)
Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
Element.dwErrorStatus = CERT_TRUST_IS_UNTRUSTED_ROOT (0x20)
Exclude leaf cert:
Chain: da39a3ee5e6b4b0d3255bfef95601890afd80709
Full chain:
Chain: c6388297376cfde5742b3bd2a217ba1c728bc005
------------------------------------
Verified Issuance Policies: All
Verified Application Policies: All
Cannot check leaf certificate revocation status
CertUtil: -verify command completed successfully.
我該怎麼辦才能將證書的副本安裝到LocalMachine \ Root?我按照這個步驟,但它沒有工作: https://technet.microsoft.com/en-us/library/cc754841(v=ws.11).aspx – code
將您的證書導出到CER文件並運行以下命令: 'certutil -verify path \ certfile.cer'並在你的問題中發佈輸出。 – Crypt32
我做你想做的和我上面的問題的輸出......但是當我運行該項目的verfiy給我虛假 – code