我制作了一个由本地机器上创建的CA签名的openssl证书.
此证书已删除,我不再拥有它.
创建具有相同commonName的另一个证书是不可能的,因为openssl不允许它并将生成错误:
failed to update database
TXT_DB error number 2
Run Code Online (Sandbox Code Playgroud)
如何撤销证书以创建具有相同commonName的另一个证书?
我在10天前左右向我的iTunes Connect帐户添加了两个应用程序.一个是'轻型'版本,另一个是我要收费的.完整版已经在应用商店中,但免费版的状态还没有比"准备上传"更进一步.十天之内!一定有什么不对,对吧?如果是这样 - 我怎样才能知道出现了什么?
我确实搞砸了我的证书,因为我创建了一些for com.company.FreeApp然后撤销了它并创建了一个com.company.*,但我不确定我添加应用程序的顺序是什么,等等.这可能导致应用程序停止在'准备上传'状态?还有其他想法吗?谢谢!
我有一个.NET 3.5桌面应用程序,当它所在的测试机器不在办公室时,它已经显示出功能的周期性减速.
我设法在没有互联网连接的情况下在办公室的机器上复制错误,但只有当我使用ANTS性能分析器时,我才能更清楚地了解正在发生的事情.
在ANTS中,我看到"等待同步"需要16秒,这与NHibernate尝试加载System.Data.SqlServerCE.dll程序集时在应用程序中看到的延迟相对应.
如果我立即再次尝试动作它会毫无延迟地工作但如果我离开它5分钟,那么下次我尝试它时再次加载会很慢.
到目前为止,我的研究似乎是因为SqlServerCE dll已签名,因此系统正在尝试连接以获取证书吊销列表并超时.
禁用"Internet选项"LAN设置中的"自动检测设置"设置会使问题消失,同时禁用"检查发布者证书吊销".
但是,部署此应用程序的管理员不会对在每台计算机或每个用户上禁用证书检查的想法感到满意,因此我确实需要让应用程序级别禁用CRL检查工作.
.net 2.0中有一个记录良好的错误,它描述了这种行为,并提供了一个配置文件元素的可能修复.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这不是为我工作然而,即使我使用.NET 3.5.
SQLServerCE dll是由NHibernate动态加载的,我想知道它是动态的这个事实可能不知何故设置不起作用的原因,但我不知道如何检查它.
任何人都可以提供有关配置设置可能不起作用的建议吗?
或者是否有另一种方法可以在应用程序级别禁用检查,也许是CAS策略设置,我可以使用它在应用程序安装时为应用程序设置例外?
或者我可以在应用程序中更改信任级别或类似的东西吗?
c# nhibernate certificate code-access-security certificate-revocation
我正在试图弄清楚在使用Security.Framework验证证书时证书的撤销时的iOS政策.我在iOS的文档中找不到相关信息.在我正在进行的iPad项目的背景下,有理由要求检查某些证书的撤销状态.有关如何使用Security.Framework在证书验证期间强制CRL/OCSP检查的任何想法?或者我是否需要"退回"OpenSSL才能实现这一目标?
似乎在Mac OS X 10.6 CRL/OCSP检查也是可选的,必须通过Keychain Access手动打开.
马亭
假设PKI层次结构如下所示.
root CA ==> inter-1 CA ==> user-1
\
\======> inter-2 CA ==> user-2
Run Code Online (Sandbox Code Playgroud)
我的问题是:root CA是否还需要定期从其子代下载CRL:inter-1和inter-2?
由于user-1和user-2可以相互认证,如果inter-2撤销了user-2的证书,则inter-2应该让root知道然后传播到inter-1和user-1,对吧?
如果是这样,那似乎很复杂.是否有任何工具可用于管理撤销逻辑?非常感谢.
ssl openssl certificate-revocation ssl-certificate x509certificate
如何关闭WCF服务客户端的证书吊销?客户端代理由wsdl.exe生成并继承SoapHttpClientProtocol.
我的问题与这个问题类似.
我试图只使用本地CRL检查撤销列表.
我使用X509Chain.Build()与以下参数:
var chainMachine = new X509Chain(true);
chainMachine.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
chainMachine.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromSeconds(30);
chainMachine.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;
chainMachine.ChainPolicy.VerificationTime = DateTime.Now;
chainMachine.ChainPolicy.RevocationMode = X509RevocationMode.Offline;
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误:
- RevocationStatusUnknown =>撤销功能无法检查证书的吊销.
- OfflineRevocation =>撤销功能无法检查证书的吊销,因为吊销服务器处于脱机状态.
奇怪的是,一旦我尝试在线检查撤销列表(因此CRL将被更新),问题就解决了.所以它看起来一旦缓存中有任何东西,问题就不能再复制了.
我认为可能错误消息不正确,实际发生的是当缓存为空时会出现一些异常导致此消息弹出.另一个选择是,可能有一些标志说明缓存是否已经更新,如果它从未更新过,它会尝试从外部服务器获取信息
任何人都可以指出这个问题的原因是什么?
我正在使用充气城堡离线验证X509证书,并且遇到了旧版CRL的问题.我还没有发现有可能接受已过期的CRL,我认为如果证书被撤销,它应该在CRL到期后保持撤销.另外如果CRL是空的我只想接受这个,我现在无法获得更新的CRL.
只是为了澄清,这将是用例:
目前我将撤销检查设置为false并自行执行检查.我在网上找不到任何关于此的信息.
这是我的代码:
final X509CertSelector endConstraints = new X509CertSelector();
endConstraints.setSerialNumber(signer.getSID().getSerialNumber());
final PKIXBuilderParameters buildParams = new PKIXBuilderParameters(trustAnchors, endConstraints);
//a CertStore object with Certificates and CRLs
buildParams.addCertStore(certificates);
//currently deactivated
buildParams.setRevocationEnabled(false);
final CertPathBuilder builder = CertPathBuilder.getInstance(SignedFileVerifier.CERTIFICATE_PATH_ALGORITHM, SignedFileVerifier.PROVIDER);
final CertPathBuilderResult result = builder.build(buildParams);
//here I manually check the CRLs, which I don't want to do
checkRevocation(result.getCertPath().getCertificates(), certificates, trustAnchors);
//if this passes I return the found certificate
return (X509Certificate) result.getCertPath().getCertificates().get(0);
Run Code Online (Sandbox Code Playgroud)
确切的例外是:
Caused by: org.bouncycastle.jce.exception.ExtCertPathValidatorException: No CRLs found for …Run Code Online (Sandbox Code Playgroud) 我想获取在Android设备上下载的所有已撤销证书列表的列表?我知道这个类允许你检查证书是否被撤销,但我想得到撤销证书的完整列表.可能吗?Android存储这样的列表还是使用OCSP来检查证书?
我无法在iOS上使用CRL。我创建了两个测试用例。我有由CA颁发的有效证书。我有由CA颁发的另一个有效证书,但是CA已将该证书添加到其CRL中。
然后,我设置了一个启用CRL检查并要求成功的吊销策略。
func crlValidationTest(trustedCert: SecCertificate, certToVerify: SecCertificate) -> Bool {
let basicPolicy = SecPolicyCreateBasicX509()
let crlPolicy = SecPolicyCreateRevocation(kSecRevocationOCSPMethod | kSecRevocationCRLMethod | kSecRevocationRequirePositiveResponse)!
var trust: SecTrust?
SecTrustCreateWithCertificates(NSArray(object: certToVerify), NSArray(objects: basicPolicy, crlPolicy), &trust)
SecTrustSetAnchorCertificates(trust!, NSArray(object: trustedCert))
SecTrustSetNetworkFetchAllowed(trust!, true)
var trustResult = SecTrustResultType.invalid
guard SecTrustEvaluate(trust!, &trustResult) == errSecSuccess else {
return false
}
return trustResult == SecTrustResultType.proceed || trustResult == SecTrustResultType.unspecified
}
Run Code Online (Sandbox Code Playgroud)
我的期望是CRL上的证书将不受信任,而干净的证书将受到信任。
在上述配置的情况下,两者均会由于不受信任而失败。如果删除该kSecRevocationRequirePositiveResponse标志,则两者均成功。我已经尝试过仅使用OSCP或仅使用CRL的所有不同排列方式,但没有一种能达到我期望的效果。
Apple 的州文件SecPolicyCreateRevocation:
除非您希望覆盖默认的系统行为(例如强制使用特定方法或完全禁用吊销检查),否则通常无需自己创建吊销策略。
仅使用该SecPolicyCreateBasicX509策略就可以使两者都成功(当第二个证书应该失败时),那么Apple的默认行为是根本不进行CRL检查吗?
我将CharlesProxy附加到我的设备上,并在侦听所有网络流量的同时多次运行该代码,并且没有出站请求发送到CRL,这解释了为什么RequirePositiveResponse选中该标志时所有请求都失败。
我还尝试使用进行从设备直接导航到CRL的操作URLRequest,并且能够毫无问题地获取设备上的CRL数据。 …