4

我正在编写一个服务,它应该从移动设备接收以 Base64 编码的 DER 格式 PKCS#10 证书请求,然后返回从 CA 获得的证书。

我正在尝试使用“https://CA-server/certsrv/mscep/mscep.dll?operation=PKIOperation&Message=urlencoded request”

     $ca_link_device="https://..../certsrv/mscep/mscep.dll";
     $URL=$ca_link_device."?operation=PKIOperation&Message=".urlencode($BinarySecurityToken)."=";
     $ch3 = curl_init();
     curl_setopt($ch3, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch3, CURLOPT_URL, $URL); 
     curl_setopt($ch3, CURLOPT_HEADER, 0);
     $cert = curl_exec($ch3);

但返回的数据包含空信封。我很可能在做一些非常愚蠢的事情,但不幸的是我在证书管理方面的知识接近于零。我一直在尝试 google,但是周围有太多的技术文档,我不知道从哪里开始,什么与我相关,什么不相关。

非常感谢所有帮助。

编辑:根据一份文档,我应该将我的 PKCS10 请求包装到 PKCS7 中。根据 Microsoft PKCS10 应该没问题,PKCS7 仅用于证书更新。相信谁?

4

1 回答 1

1

最后,我们只是放弃了 mscep.dll 方法,并使用 curl 将带有所需参数的 POST 直接发送到 ...certsrv/certfnsh.asp 页面。然后我们对返回的 HTML 进行解析,得到证书下载的链接。

不是一个好的解决方案,但对我们有用。

于 2013-02-08T08:26:02.767 回答