gpt4 book ai didi

c# - 使用单独的 key 生成 MS CA 证书,C#

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

目前我正在开发一个 Web 应用程序,它将作为 MS CA 接口(interface)用于认证注册。在应用程序生成 csr 并将其发送给 CA 后出现错误。证书应具有以下结构:

Serialnumber = UserId, CN = FirstName SecondName, O = Organization, P = PhoneNumber

这是一个真实的例子:

Serialnumber = 200554041000, CN = John Farel, O = SRL Insign, P = 60182209, C = MD

显示的错误是:

CertEnroll::CX500DistinguishedName::Encode: The string contains an invalid X500 name attribute key, oid, value or delimiter. 0x80092023 (-2146885597)

如果我删除 P 或在 Phone 上更改它,一切顺利,并且正在生成证书。

第二个!! :) 生成证书后,主题 DN 包含所有内容,而不是序列号和电话。

我在 MS Windows Server 2008 上使用 MS CA,CA 加密服务提供商:Microsoft 软件存储提供商,哈希算法:SHA1。

如需了解更多信息,请发表评论。谢谢期待!

最佳答案

需要知道的几件事:

1) “电话号码”属性被命名为“电话”,而不是“P”或其他任何东西。

编辑:

2) 我检查了 SDK,不幸的是,似乎无法在主题中包含电话 RDN 属性。从头文件中只能添加这些属性:

//+--------------------------------------------------------------------------
// Name properties:

#define wszPROPDISTINGUISHEDNAME TEXT("DistinguishedName")
#define wszPROPRAWNAME TEXT("RawName")

#define wszPROPCOUNTRY TEXT("Country")
#define wszPROPORGANIZATION TEXT("Organization")
#define wszPROPORGUNIT TEXT("OrgUnit")
#define wszPROPCOMMONNAME TEXT("CommonName")
#define wszPROPLOCALITY TEXT("Locality")
#define wszPROPSTATE TEXT("State")
#define wszPROPTITLE TEXT("Title")
#define wszPROPGIVENNAME TEXT("GivenName")
#define wszPROPINITIALS TEXT("Initials")
#define wszPROPSURNAME TEXT("SurName")
#define wszPROPDOMAINCOMPONENT TEXT("DomainComponent")
#define wszPROPEMAIL TEXT("EMail")
#define wszPROPSTREETADDRESS TEXT("StreetAddress")
#define wszPROPUNSTRUCTUREDNAME TEXT("UnstructuredName")
#define wszPROPUNSTRUCTUREDADDRESS TEXT("UnstructuredAddress")
#define wszPROPDEVICESERIALNUMBER TEXT("DeviceSerialNumber")

3) 避免在您的 .NET 应用程序中使用“Microsoft Software Key Storage Provider”提供程序,因为它是 CNG 提供程序并且 X509Certificate2 不支持 CNG(.NET 可耻)。不过,建议使用 KSP 作为 CA key (当没有 HSM 时)。

关于c# - 使用单独的 key 生成 MS CA 证书,C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29524729/

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