如何从PHP获取CA的注册证书

我正在编写一个服务,该服务应该从移动设备接收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);

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

所有人都非常感谢.

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

解决方法:

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

不是一个很好的解决方案,但为我们工作.

上一篇:java – 在富客户端(而不是Web)中实现单点登录?


下一篇:c# – HttpWebRequest是否自动处理证书验证?