【发布时间】:2020-02-24 19:51:23
【问题描述】:
我正在使用 c# 代码(基于:.NET Core 2.0 CertificateRequest class)颁发(具有自己的证书颁发机构)的证书
在 CertificateRequest 中,无法添加证书 ocsp 授权信息访问(oid:1.3.6.1.5.5.7.1.1)和证书策略(oid:2.5.29.32)扩展(类似结果: Authority Information Access extension)
我不想使用外部库,如果需要,可能只使用 ASN1 库。
任何人都可以帮助使用 c# 代码添加这些扩展,因为我在 .Net 中没有找到任何合适的类型?
certificateRequestObject.CertificateExtensions.Add(
new X509Extension("2.5.29.32", **[Authority Information Access text] to RawData?** , false));
[授权信息访问文本]
Authority Information Access 1.3.6.1.5.5.7.1.1
[1]Authority Info Access
Access Method=On-line Certificate Status Protocol (1.3.6.1.5.5.7.48.1)
Alternative Name:
URL=example.org
[2]Authority Info Access
Access Method=Certification Authority Issuer (1.3.6.1.5.5.7.48.2)
Alternative Name:
URL=example.org
【问题讨论】:
-
您需要什么选项? RSA 有很多不同的选项,例如填充和 TLS 1.2 与 TLS 1.3(参见 en.wikipedia.org/wiki/Comparison_of_TLS_implementations)。并且Net从32位移动到64位。新版本的Net增加了X509Certificate2。 Net 的默认值是 TLS 1.3,X509Certificate2 仍然需要在新的 Net 中使用 TLS 1.2。我不知道您可能拥有的所有选项和答案。只是知道最近我看到了很多使用新版本 Net 的 OP 和旧代码无法正常工作的问题。
-
这有点不正确。授权信息访问扩展人口是 CA 的责任,而不是客户。您需要配置 CA 以在扩展中包含正确的 URL。客户端不应控制 AIA/CDP 扩展中包含哪些 URL。
-
@Crypt32:是的,CA 在颁发证书时包含正确的 URL。 SubjectAlternativeNameBuilder 可用,但无法弄清楚如何添加授权信息访问和证书扩展
-
你看我的评论了吗?颁发证书中的 AIA 扩展人口是 CA 的责任,而不是客户。您不得在请求中包含 AIA 延期。此外,CA 会从请求中忽略此扩展,并使用其配置插入 AIA 扩展。
-
@Crypt32:正如问题中提到的,作为自己的 CA,我正在颁发客户端证书,而这里没有其他 CA。在 CA 等情况下,我需要自己插入 AIA 扩展,问题是如何插入。如果我向任何其他 CA 提交请求,我同意您的看法,他们需要插入 AIA 扩展并发出。
标签: c# .net-core certificate x509certificate2 ocsp