php套接字:使用没有私钥的Symantec证书
我正在开发一个与Nominet EPP服务器交互的php客户端,我在他们的网站上发现: 我需要使用“Verisign Class 3公共初级证书颁发机构”根证书。我在这里找到了一个(Verisign由赛门铁克购买): 当我在php代码中使用它时:php套接字:使用没有私钥的Symantec证书,php,nominet,Php,Nominet,我正在开发一个与Nominet EPP服务器交互的php客户端,我在他们的网站上发现: 我需要使用“Verisign Class 3公共初级证书颁发机构”根证书。我在这里找到了一个(Verisign由赛门铁克购买): 当我在php代码中使用它时: //$context = stream_context_create(array($this->protocol => $options)); $context = stream_context_create(); stream_conte
//$context = stream_context_create(array($this->protocol => $options));
$context = stream_context_create();
stream_context_set_option($context, $this->protocol, 'local_cert', __DIR__ . '/../../certificates/'.$this->certificate_path);
$errno = false;
$errstr = false;
$this->socket = stream_socket_client($this->protocol.'://'.$this->hostname.':'.$this->port, $errno, $errstr, 5 , STREAM_CLIENT_CONNECT, $context);
一切正常:证书路径、端口、主机名。。。
我得到:
“stream\u socket\u client():无法设置私钥文件…”
我知道我需要一个私钥,但在Symentec网站上他们不提供私钥
有人知道吗
非常感谢
Hassan,您没有使用正确的上下文选项。此选项用于定义您的证书。您需要的是使用找到的证书对对等服务器进行身份验证,以确保您与正确的服务器进行了对话 如本报告所述: 为了验证安全服务器的身份,您需要 “Verisign 3级公共初级证书颁发机构”根 证书可从www.verisign.com免费获得(证书为 也适用于大多数web浏览器) 关于PHP文档: 本地证书 文件系统上本地证书文件的字符串路径。信息技术 必须是PEM编码的文件,其中包含您的证书和专用证书 钥匙 但你想要的是: 卡菲尔 证书颁发机构文件在本地文件系统上的位置 应与verify_peer context选项一起使用,以验证 远程对等方的标识
您没有使用正确的上下文选项。此选项用于定义您的证书。您需要的是使用找到的证书对对等服务器进行身份验证,以确保您与正确的服务器进行了对话 如本报告所述: 为了验证安全服务器的身份,您需要 “Verisign 3级公共初级证书颁发机构”根 证书可从www.verisign.com免费获得(证书为 也适用于大多数web浏览器) 关于PHP文档: 本地证书 文件系统上本地证书文件的字符串路径。信息技术 必须是PEM编码的文件,其中包含您的证书和专用证书 钥匙 但你想要的是: 卡菲尔 证书颁发机构文件在本地文件系统上的位置 应与verify_peer context选项一起使用,以验证 远程对等方的标识
感谢Salketer的回复,我更改了它,在Google上搜索到“stream_socket_client():无法启用加密”错误,似乎人们通过添加curl模块来解决它。。。我先仔细检查一下,添加curl模块是什么意思?你的意思是发送一个curl请求而不是“stream\u socket\u client”?不,它已经完成了,我在同一个项目中的一些任务中使用了它。我想,如果你已经搜索了足够多的内容,现在是时候为这个调试提出另一个问题了。感谢Salketer的回复,我更改了它,得到了“stream\u socket\u client():无法启用加密”通过谷歌搜索错误,人们似乎通过添加curl模块来解决它。。。我先仔细检查一下,添加curl模块是什么意思?你的意思是发送一个curl请求而不是“stream\u socket\u client”?不,它已经完成了,我在同一个项目中的一些任务中使用了它。我想,如果你已经搜索了足够多的内容,那么是时候为这个调试提出另一个问题了。