不可能的SSL CAS证书,包括PHPCA和示例。它只在没有SSL服务器验证的情况下工作

不可能的SSL CAS证书,包括PHPCA和示例。它只在没有SSL服务器验证的情况下工作,php,curl,ssl,cas,phpcas,Php,Curl,Ssl,Cas,Phpcas,我正在做一个CAS集成的项目,我正在做我的大学。最终的集成应该与symfony2进行,但是首先我需要使示例代码正常工作 我终于开始使用phpCAS 1.3.2处理示例_simple.php示例,但是指令: phpCAS::setNoCasServerValidation(); 是启用的一个。我想我应该用: phpCAS::setCasServerCACert($cas_server_ca_cert_path); 但是,当我启用第二个(并禁用另一个)时,授权不再起作用。以下是日志的相关输出行错

我正在做一个CAS集成的项目,我正在做我的大学。最终的集成应该与symfony2进行,但是首先我需要使示例代码正常工作

我终于开始使用phpCAS 1.3.2处理示例_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 dirs(例如/usr/share/ca certificates/lut/MYCASLinuxSUBCA.crt),我无法使它工作。我做错了什么?我的客户端服务器(不是cas服务器)位于本地主机中。这是个问题吗?我应该避免使用setcaservercacert命令吗?为什么会这样

我还尝试使用XAMP installation(XAMPP1.8.3)提供的curl-ca-bundle.crt证书

正如你所看到的,我对证书有点迷茫

我在中读到了关于phpCAS和最近Ubuntu版本的问题。但是,即使没有认证(默认情况下),我也无法使其与主代码一起工作


如果您有任何想法,我们将不胜感激。

我在github库中找到了一个解决方案:

原因是PHP在我的xampp安装中使用的curl二进制文件与系统的curl二进制文件不同。system one可以访问/etc/ssl/certs/certificates,但xampp curl没有(当然,除非您没有指明)。默认情况下,它在特殊的证书捆绑文件中搜索

最后,我找到了我的cas服务器的真正证书,我正在使用它,但是如果您遇到类似问题,您可能希望在讨论结束时使用其他建议的解决方案