1

我正在尝试使用 curl 进行一些操作,但我必须工作的网站使用 Kerberos 身份验证。因此,我必须启用默认禁用的 curl 的 SPNEGO 功能。

这是我的 phpinfo 的摘录:

cURL support    enabled
cURL Information    7.19.7
Age 3
Features
AsynchDNS   No
Debug   No
GSS-Negotiate   Yes
IDN Yes
IPv6    Yes
Largefile   Yes
NTLM    Yes
SPNEGO  No
SSL Yes
SSPI    No
krb4    No
libz    Yes
CharConv    No
Protocols   tftp, ftp, telnet, dict, ldap, ldaps, http, file, https, ftps, scp, sftp
Host    x86_64-redhat-linux-gnu
SSL Version NSS/3.13.1.0
ZLib Version    1.2.3
libSSH Version  libssh2/1.2.2

我怎样才能做到这一点?

4

2 回答 2

0

首先获取新版本的 curl,检查您的 Kerberos 版本。所有最近的版本都原生支持 SPNEGO,也就是说,一个小补丁和 curl 将与 SPNEGO 一起工作,无需额外的软件。

让事情发挥作用:

  1. 下载并编译 curl 和 libcurl
  2. 安装它,例如 /usr/local
  3. 先直接试试curl
  4. 下载一个新版本的 PHP 并用 --with-curl[=DIR] 编译它,见1 , 2
  5. 安装它
  6. 享受

这里有一些警告:

  1. 首先,curl 需要如前所述进行修补。
  2. 不幸的是,PHP 静态链接到 curl(libcurl.a,请参阅 [2]),这意味着您无法切换到新的 curl 版本,除非使用新版本重新编译 PHP。也许这只是一个人为的限制。
于 2013-12-19T21:26:32.673 回答
0

补丁 micheal 正在谈论一些编码(更改 curl 源代码)。如果您不想这样做,请使用 fbopenssl 库并链接 curl 反对它。在那之后

SPNEGO 是的

将是帮助版本中的标志。

请注意,您的 curl 版本不支持 keytab、用户名密码身份验证或凭证缓存模式。如果你想使用我的 curl 叉子(虽然这个有 Micheal 的补丁):-

github.com/Khalian/CURL
于 2013-12-23T13:57:15.103 回答