无法从文件“ /var/simplesamlphp/cert/saml.pem”中加载私钥

问题描述 投票:1回答:1

我尝试将simplesamlphp与Joomla集成,当我在simplesamlphp idp中获得授权时,出现以下错误

SimpleSAML\Error\Error: UNHANDLEDEXCEPTION

Backtrace:
1 www/_include.php:17 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: SimpleSAML\Error\Exception: Unable to load private key from file "/var/simplesamlphp/cert/saml.pem"
Backtrace:
14 lib/SimpleSAML/Utils/Crypto.php:220 (SimpleSAML\Utils\Crypto::loadPrivateKey)
13 modules/saml/lib/Message.php:34 (SimpleSAML\Module\saml\Message::addSign)
12 modules/saml/lib/IdP/SAML2.php:1094 (SimpleSAML\Module\saml\IdP\SAML2::buildAssertion)
11 modules/saml/lib/IdP/SAML2.php:54 (SimpleSAML\Module\saml\IdP\SAML2::sendResponse)
10 [builtin] (call_user_func)
9 lib/SimpleSAML/IdP.php:287 (SimpleSAML\IdP::postAuthProc)
8 lib/SimpleSAML/IdP.php:333 (SimpleSAML\IdP::postAuth)
7 [builtin] (call_user_func)
6 lib/SimpleSAML/Auth/Source.php:230 (SimpleSAML\Auth\Source::loginCompleted)
5 [builtin] (call_user_func)
4 lib/SimpleSAML/Auth/Source.php:145 (SimpleSAML\Auth\Source::completeAuth)
3 modules/core/lib/Auth/UserPassBase.php:298 (SimpleSAML\Module\core\Auth\UserPassBase::handleLogin)
2 modules/core/www/loginuserpass.php:83 (require)
1 lib/SimpleSAML/Module.php:236 (SimpleSAML\Module::process)
0 www/module.php:9 (N/A)

我已经安装了simplesamlphp,并且已经在同一simplesamlphp安装中配置了SP和ISP。在cert目录中创建的配置步骤中,文件saml.pemsaml.crtdocumentation中所述,使用命令openssl req -newkey rsa: 3072 -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem this定位在/cert目录中。

在执行以下代码时在joomla中

require_once('/var/simplesamlphp/lib/_autoload.php');

$as = new SimpleSAML_Auth_Simple('default-sp');

$as->requireAuth(); // <-- 

$attributes = $as->getAttributes();

print_r($attributes);

die();

simplesamlphp idp表单已打开,要求提供凭据,当授权我时,它会向我发送上述错误

我欢迎您的评论

php joomla single-sign-on simplesamlphp
1个回答
0
投票

对我有用的解决方案是website/vendor/simplesamlphp/simplesamlphp/config/config.php文件并调整从中读取证书的目录。

这是文件的开头。

$config = array(

'baseurlpath' => 'http://website.localdev/',
'certdir' => 'certs/',
'loggingdir' => 'log/',
'datadir' => 'data/',

最初,此设置为cert/,而我创建的目录为certs/

© www.soinside.com 2019 - 2024. All rights reserved.