1
我有這樣的代碼:使用自簽名證書
X509Chain x509Chain = new X509Chain();
x509Chain.ChainPolicy.ExtraStore.Add(certificate1);
x509Chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck;
x509Chain.ChainPolicy.RevocationFlag = X509RevocationFlag.ExcludeRoot;
x509Chain.Build(certificate2);
foreach (X509ChainElement x509ChainElement in x509Chain.ChainElements)
{
Log("Name: " + x509ChainElement.Certificate.GetNameInfo(X509NameType.SimpleName, false));
foreach (X509ChainStatus x509ChainStatus in x509ChainElement.ChainElementStatus)
Log("status: " + x509ChainStatus.StatusInformation);
if (x509ChainElement.ChainElementStatus.Length != 0 && (x509ChainElement.Certificate.Thumbprint != certificate1.Thumbprint))// || x509ChainElement.ChainElementStatus[0].Status != X509ChainStatusFlags.UntrustedRoot))
return false;
}
我不能設法得到它安裝證書如果是自簽名的(或至少我認爲它沒有得到安裝)。在狀態日誌消息我得到這個:
證書鏈處理,但終止於根證書 這是不信任提供
我怎麼能忽略檢查是否可信?
如果我添加這個:x509Chain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllFlags;或你提到的國旗我仍然得到這個消息,但x509Chain.Build()返回true。 – Cornwell
這也將完全禁用權威檢查,即。 「PartialChain」錯誤仍然會導致錯誤。比較的答案http://stackoverflow.com/questions/27307322/verify-server-certificate-against-self-signed-certificate-authority?rq=1 – Divide