我正在与我正在与我的大学一起做的项目进行 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 文件:
- MYCASRootCA.crt
- MYCASLinuxSUBCA.crt
并且它们应该安装在我的系统中(Ubuntu 13.10)。它们位于不同的位置,例如 /etc/ssl/certs/MYCASLinuxSUBCA.pem 以及:
- /usr/share/ca-certificates/lut/MYCASRootCA.crt
- /usr/share/ca-certificates/lut/MYCASLinuxSUBCA.crt
因此,假设变量 $cas_server_ca_cert_path 必须具有这些 .crt 文件或 .pem 目录之一(例如/usr/share/ca-certificates/lut/MYCASLinuxSUBCA.crt),我无法使其工作。我做错了什么?我的客户端服务器(没有 cas 服务器)在我的本地主机中。这是个问题吗?我应该避免使用 setCasServerCACert 命令吗?为什么会这样?
我还尝试使用我的 XAMP 安装(Xampp 1.8.3)提供的 curl-ca-bundle.crt 证书。
如您所见,我对证书有点迷茫。
我在https://github.com/Jasig/phpCAS/issues?state=open中阅读了有关 phpCAS 和最新 Ubuntu 版本的问题。但是,即使没有认证(默认情况下),我也无法使用主代码进行此操作。
任何想法,将不胜感激...