首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP连接到web服务时,只给出用户名、密码和证书颁发机构

使用PHP连接到web服务时,只给出用户名、密码和证书颁发机构
EN

Stack Overflow用户
提问于 2011-07-26 20:39:47
回答 2查看 2.6K关注 0票数 7

我正在使用Microsoft C#成功地连接到Microsoft web服务。我必须提供用户名和密码(在C#代码中);并将证书( .cer格式)安装到系统证书的“根证书颁发机构”部分。

如何在PHP中连接到这样的web服务?我问这个问题的原因是,我所见过的所有方法(比如创建SSL子类的wsdl2php )似乎都假定了各种东西,比如SoapClient证书、SSL密钥文件和SSL密钥密码。

所以这一切都让我感到困惑。我不确定什么应该放在哪里。我不确定我的“根证书颁发机构”( .cer文件)应该放在哪里,以及用户名和密码应该放在哪里。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-31 01:12:27

所有这些都可以通过使用ssl optionssoapclientstream_context_create来完成

代码语言:javascript
复制
<?php
$context = stream_context_create(array(
  'https' => array(
     'cafile' => '/path to file',
     'verify_peer' => true
  )));

new soapclient("https://localhost/index.php?wsdl",array(
  'login'=>'admin',
  'password'=>'passss',
  'stream_context'=> $context
));

在soap中,不使用http身份验证而只使用soap调用的情况并不少见,文档化是必不可少的。

使用soapclient和使用classmap的类将soaptype映射到php类可能是有益的。

票数 5
EN

Stack Overflow用户

发布于 2011-07-30 05:40:30

通常,如果您使用常规SSL调用will服务,您的URL将如下所示:

https://username:password@myserver.com/mywebservice.php

然后是SSL证书的发布。我正在使用类似于从SSL保护的SVN web前端读取的内容。除了以运行您的any服务器(apache/IIS)的用户身份登录到服务器并手动接受证书之外,我不知道还有什么其他解决方案。在SVN的情况下,您可以结帐,它将要求您接受证书。我不完全确定这对于普通的HTTPS请求是如何工作的,但也许您可以通过在浏览器中加载get服务来获得证书?(或者使用wget或一些奇特的东西,如果您足够幸运地运行Linux)

另外,你的代码是PHP代码还是C#代码?如果是C#,你可能需要做一些完全不同的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6830137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档