System.setProperty("com.sun.net.ssl.checkRevocation", "true");
Security.setProperty("ocsp.enable", "true");
Run Code Online (Sandbox Code Playgroud)
设置这些属性真的足以启用 OCSP 吗?
如果是这样,那么为什么我们需要充气城堡 OCSP 支持而不是仅仅设置此属性?
如果我定期撤销我的开发证书(10次/月),有什么问题吗?
让我们考虑使用具有1个开发证书和3个配置文件的不同系统开发3个应用程序.我经常在所有临时配置文件中添加新设备.
在其他2台计算机上安装配置文件时,Xcode Organizer会显示一条警告" 在您的钥匙串中找不到与此配置文件匹配的有效签名身份 ".所以我刚刚撤销了我之前的证书,并从同一台机器钥匙串生成了新的证书请求.下载新证书后,所有事情似乎都没问题.
但是,当尝试修改和下载配置文件时,其他计算机Xcode组织者将显示相同的警告.所以我总是这样解决问题(撤销和重新生成新问题).
所以我想知道,如果我定期撤销我的开发证书(比如帐户禁止/阻止等),有什么问题吗?
iphone certificate certificate-revocation iphone-developer-program ios
我使用以下命令生成根 CA:
openssl genrsa -aes256 -out ca.key.pem -passout pass:KeyPassword 4096
openssl req -key ca.key.pem -passin pass:Password -new -x509 -days 365 -sha256 -out ca.root.pem
Run Code Online (Sandbox Code Playgroud)
然后我使用以下命令创建签名的用户证书(不使用中间证书):
1)为用户生成密钥
openssl req -newkey rsa:2048 -nodes -keyout keyname.pem -days 365
Run Code Online (Sandbox Code Playgroud)
2) 创建企业社会责任
openssl req -out keyname.csr -key keyname.pem -new -days 365
Run Code Online (Sandbox Code Playgroud)
3)使用根证书签署密钥
openssl ca -batch -create_serial -config openssl.cnf -cert ca.root.pem -keyfile ca.key.pem -passin pass:KeyFinalPassword -in keyname.csr -out certname.pem
Run Code Online (Sandbox Code Playgroud)
4) 生成.p12文件
openssl pkcs12 -name username -inkey keyname.pem -in certname.pem -export -out username.p12 -password pass:password
Run Code Online (Sandbox Code Playgroud)
注意 - 我已将 …
ssl openssl certificate certificate-revocation client-certificates
我尝试使用 X509Certificate2.Verify() 函数来检查证书链是否有效。\nVerify 函数返回 false,ChainElementStatus 返回“ReitationStatusUnknown”。
\n\n有没有一种方法可以使用Verify功能而不检查RevitationStatus?在没有互联网连接的情况下无法检查撤销状态吗?是否有其他函数可以在没有 ReplicationStatus 的情况下检查链和证书?
\n\n一个肮脏的解决方案是检查 RevitationStatus 是否是 element.ChainElementStatus 中的唯一元素。
\n\n我已经使用 X509RevocableMode.Offline 和 IgnoreCertificateAuthorityReplicationUnknown。
\n\n代码来自:X509Certificate2.Verify() 方法对于有效证书始终返回 false
\n\nX509Chain ch = new X509Chain();\n\nch.Build(certificate);\n\nch.ChainPolicy.RevocationMode = X509RevocationMode.Offline;\nch.ChainPolicy.VerificationFlags = X509VerificationFlags.IgnoreCertificateAuthorityRevocationUnknown;\n\nConsole.WriteLine("Chain Information");\nConsole.WriteLine("Chain revocation flag: {0}", ch.ChainPolicy.RevocationFlag);\n\nConsole.WriteLine("Chain revocation mode: {0}", ch.ChainPolicy.RevocationMode);\nConsole.WriteLine("Chain verification flag: {0}", ch.ChainPolicy.VerificationFlags);\nConsole.WriteLine("Chain verification time: {0}", ch.ChainPolicy.VerificationTime);\nConsole.WriteLine("Chain status length: {0}", ch.ChainStatus.Length);\nConsole.WriteLine("Chain application policy count: {0}", ch.ChainPolicy.ApplicationPolicy.Count);\nConsole.WriteLine("Chain certificate policy count: {0} {1}", ch.ChainPolicy.CertificatePolicy.Count, Environment.NewLine);\n\n//Output chain element information.\nConsole.WriteLine("Chain Element Information");\nConsole.WriteLine("Number of chain elements: {0}", ch.ChainElements.Count);\nConsole.WriteLine("Chain elements …Run Code Online (Sandbox Code Playgroud) c# certificate verify certificate-revocation x509certificate2