【问题标题】:Requesting X509 cert from Microsoft Certificate Services using ICertRequest使用 ICertRequest 从 Microsoft 证书服务请求 X509 证书
【发布时间】:2018-08-27 13:31:30
【问题描述】:

我的应用程序最近更改为使用客户端-服务器模型。

现在我需要能够从远程服务器而不是本地网络上的服务器请求证书。 ICertRequest 指定它可以接受:

注册服务器的 HTTPS URL 或格式为 ComputerName/CAName

后者之前使用没有任何问题,但现在我希望它使用 HTTPS,但不确定将什么用作 url。我可以通过以下方式访问网页:

https://example.com/certsrv

但如果我将此字符串用作ICertRequest 的 strConfig,它会出现:

System.Runtime.InteropServices.COMException: 'CCertRequest::Submit: The input data was not in the expected format or did not have the expected value. 0x803d0000 (-2143485952)'

请求没有以任何方式改变,所以我希望它与 URL 相关。 我也试过https://example.com/certsrv/certrqus.asp,没有任何运气

【问题讨论】:

  • Afaic ICertRequest 只能通过 RPC 工作。当然,我可能错了。

标签: c# x509certificate x509


【解决方案1】:

Microsoft ADCS 中有两个 Web 功能:

  1. 旧版注册网页(您正在尝试使用)。
  2. 注册使用 HTTP/SOAP 传输的 Web 服务。

注册服务器的 HTTPS URL

消息指向后一个 URI。您可能需要在服务器端(CA 所在的位置)设置注册 Web 服务,并使用公开的端点与 CA 进行通信。 Web 服务由两个服务组成:策略和注册。

政策沟通:

client <---HTTP/SOAP---> XCEP <---RPC/DCOM---> Policy Storage

client fis 与 XCEP 通信以加载注册策略和证书注册策略端点。与 CA 没有直接通信,XCEP 仅存储策略、客户端可用的证书模板和注册 Web 服务的 URI。

client <---HTTP/SOAP---> WSTEP <---RPC/DCOM---> MS ADCS

策略(在第一步中获得)包含向策略提供者(XCEP 服务器)注册的注册服务的 URI。客户端使用一个或多个端点来执行证书注册任务。

参考:Certificate Enrollment Web Services in Active Directory Certificate Services

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    相关资源
    最近更新 更多