不可能的SSL cas证书与phpCAS和示例.它只能在没有SSL服务器验证的情况下工作


Impossible SSL CAS-certificates with phpCAS and examples. It only works without SSL server verification

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

我终于得到工作的example_simple.php的例子与phpCAS 1.3.2,然而指令:

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 but also:

  • /usr/share/ca证书/附近地区/MYCASRootCA.crt
  • /usr/share/ca证书/附近地区/MYCASLinuxSUBCA.crt

因此,假设变量$cas_server_ca_cert_path必须具有这些.crt文件或.pem dirs(例如/usr/share/ca-certificates/lut/MYCASLinuxSUBCA.crt)中的一个,我无法使其工作。我做错了什么?我的客户机-服务器(不是cas服务器)位于我的本地主机中。这是个问题吗?我应该避免使用setCasServerCACert命令吗?为什么会发生这种情况?

我也试过使用curl-ca-bundle。我的XAMP安装(Xampp 1.8.3)提供的crt证书。

你可以看到,我对证书有点迷茫。

我在https://github.com/Jasig/phpCAS/issues?state=open上读到关于phpCAS和最新Ubuntu版本的问题。然而,即使没有认证(默认情况下),我也无法使主代码工作。

我在github库中找到了解决方案:https://github.com/Jasig/phpCAS/issues/119

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

最后我找到了我的cas服务器的真实证书,我正在使用它,但是如果你有类似的问题,也许你想在讨论线程结束时使用其他提出的解决方案。