我正在编写一个服务,该服务应该从移动设备接收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并获得证书下载的链接.
不是一个很好的解决方案,但为我们工作.