我正在尝试创建一个PHP SOAP连接到.NET Web服务,该服务具有自签名证书,以便锁定服务以通过HTTPS进行通信.我继续得到错误,我不确定它是否与我创建证书的方式,我的Apache/PHP设置,我尝试建立SOAP请求的方式或其他方面有关.如果有人有任何指示,他们将不胜感激.提前致谢.
这就是我创建证书的方式.
创建受信任的根私钥:
genrsa -out ca_authority_prv.pem 2048
创建受信任的根颁发机构证书:
req -new -key ca_authority_prv.pem -x509 -out ca_authority_cert.pem
使证书颁发机构信任:
x509 -in ca_authority_cert.pem -out ca_authority_trust.pem -trustout
退出OpenSSL并创建一个串行文件:
echo 1000> ca_authority.srl
创建客户端私钥:
genrsa -out Client_prv.pem 2048
创建客户端请求:
req -new -key Client_prv.pem -out Client_req.pem
与CA签署客户端请求:
x509 -req -CA ca_authority_trust.pem -CAserial ca_authority.srl -CAkey ca_authority_prv.pem -in Client_req.pem -out Client_cert.pem
为客户端证书制作pfx
pkcs12 -export -in Client_cert.pem -inkey Client_prv.pem -out Client_cert.pfx
创建此证书后,我按照相同的步骤获取服务器证书,并且:
将受信任的根CA添加到计算机受信任的根存储中
将服务器证书添加到计算机存储
设置IIS以使用服务器证书并要求客户端证书
这是我用来建立PHP SOAP请求的代码(下面是错误):
$wsdl = "https://localhost/MyService/MyService.asmx";
$local_cert = "C:\\Certs\client_cert.pem";
$passphrase = …Run Code Online (Sandbox Code Playgroud)