簡體   English   中英

無法從文件“/var/simplesamlphp/cert/saml.pem”加載私鑰

[英]Unable to load private key from file "/var/simplesamlphp/cert/saml.pem"

我嘗試將 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.crt作為描述文件使用命令openssl req -newkey rsa: 3072 -new -x509 -days 3652 -nodes -out saml.crt -keyout saml.pem位於/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 表單打開請求憑據,當授權我時,它向我發送上述錯誤

我歡迎你的評論

對我website/vendor/simplesamlphp/simplesamlphp/config/config.php的解決方案是進入website/vendor/simplesamlphp/simplesamlphp/config/config.php文件並調整從中讀取證書的目錄。

這是文件的最頂部。

$config = array(

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

最初這被設置為cert/ ,我創建的目錄是certs/

當您按照該過程進行操作時,原始權限如下:

-rw-r--r--  1 root root 1773 avril 27 21:13 saml.crt
-rw-------  1 root root 2484 avril 27 21:12 saml.pem

這不好,因為 Web 服務器正在使用 uid/gid www-data/www-data

您可以修復它,提供所需的最低權限:允許對 www-data 進行組讀取訪問:

$ sudo chown :www-data saml.pem
$ sudo chmod g+r saml.pem

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM