我正在与我在大学学习的项目进行CAS集成。最后的集成应该使用symfony2,但首先我需要使示例代码正常工作。
我终于使用 phpCAS 1.3.2 来运行 example_simple.php 示例,但是指令:
phpCAS::setNoCasServerValidation();
是已启用的。我想我应该改用:
phpCAS::setCasServerCACert($cas_server_ca_cert_path);
然而,当我启用第二个(并禁用另一个)时,授权不再起作用。以下是日志的相关输出行错误:
could not open URL 'https://cas_server.fi/cas/serviceValidate?service=http%3A%2F%2Flocalhost%2Fphpcas2%2Fdocs%2Fexamples%2Fexample_simple.php&ticket=ST-115606-M1Omd1cHWzbLbmxa1nYV-cas' to validate (CURL error #60: SSL certificate problem: unable to get local issuer certificate) [Client.php:2763]
cas服务器为我提供了两个.crt文件:
他们假设安装在我的系统中(Ubuntu 13.10)。它们位于不同的地方,例如/etc/ssl/certs/MYCASLinuxSUBCA.pem,但也有:
假设变量$ cas_server_ca_cert_path必须有这些.crt文件之一或.pem目录(例如 /usr/share/ca-certificates/lut/MYCASLinuxSUBCA.crt )我不能让它起作用。我做错了什么?我的客户端服务器(没有cas服务器)在我的localhost中。这是个问题吗?我应该避免使用setCasServerCACert命令吗?为什么会这样?
我还尝试使用我的XAMP安装程序提供的curl-ca-bundle.crt证书(Xampp 1.8.3)。
你可以看到,我对证书有点失落。
我在https://github.com/Jasig/phpCAS/issues?state=open中读到了phpCAS和最近的Ubuntu版本的问题。但是,即使没有认证(默认情况下),我也无法使用主代码。
任何想法都会受到赞赏......
答案 0 :(得分:0)
我在github库中找到了解决方案:https://github.com/Jasig/phpCAS/issues/119
原因是PHP在我的xampp安装中使用的curl二进制文件与系统的curl二进制文件不同。系统可以访问/ etc / ssl / certs / certificates,但是xampp curl没有(当然,除非你没有指明它)。默认情况下,它会搜索特殊的证书捆绑文件。
最后我找到了我的cas-server的真实证书,我正在使用它,但是如果你遇到类似的问题,也许你想在讨论主题的末尾使用其他提议的解决方案。