- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
为了使用客户端证书在内部验证应用程序,我使用 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/
当 X509Certificate 被撤销时,我如何以编程方式获取?如果证书被吊销,我可以获得信息,但我需要获得吊销证书的时间,我认为 CRL 列表包含该信息,但有人可以告诉我如何阅读该信息。 最佳答
我如何使用 OCSP 在 java 中手动检查证书吊销状态,只给定客户端的 java.security.cert.X509Certificate?我看不到一个明确的方法。 或者,我可以让 tomcat
在我的 AD B2C 应用程序中,我需要撤销 AD B2C 为用户提供的所有刷新 token 。这是在用户帐户登录多个应用程序并且在一个应用程序用户更改密码时实现的要求。更改密码后,我已经撤销了他提供
我是一名优秀的程序员,十分优秀!