gpt4 book ai didi

c# - 使用 makecert 创建证书吊销列表 (CRL),然后使用 pvk2pfx 将其捆绑到 .pfx

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:16 26 4
gpt4 key购买 nike

为了使用客户端证书在内部验证应用程序,我使用 makecert 应用程序创建了根证书和客户端证书。

一切正常,但是当我使用 X509Certificate2 Verify 方法时,出现以下错误:

The revocation function was unable to check revocation for the certificate

X509Certificate2 cert = actionContext.Request.GetClientCertificate();
cert.Verify();

我可以通过创建一个 X509Chain 然后将 X509ChainPolicy 设置为 RevocationMode = X509RevocationMode.NoCheck 来解决这个问题。

X509Certificate2 cert = actionContext.Request.GetClientCertificate();

if (cert == null)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized)
{
ReasonPhrase = "Client Certificate Required"
};
}
else
{
X509Chain chain = new X509Chain();

//Needed because the error "The revocation function was unable to check revocation for the certificate" will happen otherwise
chain.ChainPolicy = new X509ChainPolicy()
{
RevocationMode = X509RevocationMode.NoCheck,
};
try
{
var chainBuilt = chain.Build(cert);
Debug.WriteLine(string.Format("Chain building status: {0}", chainBuilt));

if (chainBuilt == false)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized)
{
ReasonPhrase = "Client Certificate not valid"
};
foreach (X509ChainStatus chainStatus in chain.ChainStatus)
{
Debug.WriteLine(string.Format("Chain error: {0} {1}", chainStatus.Status, chainStatus.StatusInformation));
}
}
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
}
}

但这让我感兴趣。有什么方法可以让我用 makecert 创建一个 Certificate Revocation List (CRL) 然后用 pvk2pfx 把它捆绑到一个 .pfx 中X509Certificate2 Verify 是否接受?

最佳答案

在msdn上找到了解决方法。

https://msdn.microsoft.com/en-us/library/ff648732.aspx

创建根证书后,运行以下命令:

makecert -crl -n "CN=RootCATest" -r -sv RootCATest.pvk RootCATest.crl

在服务器和客户端机器上安装 CRL 文件。使用 MMC 在受信任的根证书颁发机构存储中的客户端和服务器计算机上安装 RootCATEs.crl。

MMC -> 文件 -> 添加或删除管理单元 -> 证书 -> 我的用户帐户

受信任的根证书颁发机构 -> 证书 -> 右键单击​​ -> 所有任务 -> 导入 -> RootCATest.crl

我没有设法将它与 pvk2pfx 捆绑在一起,但在这样做之后我可以运行 Verify。

关于c# - 使用 makecert 创建证书吊销列表 (CRL),然后使用 pvk2pfx 将其捆绑到 .pfx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47748649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com