【发布时间】:2018-12-21 23:31:26
【问题描述】:
我正在尝试使用PHP-JWT 生成 JWT,但我总是最终得到错误:
PHP Warning: openssl_sign(): supplied key param cannot be coerced into a private key
我已经尝试使用 openssl 生成密钥对,使用 opennssl 使用密码保护密钥,然后使用 openssl_get_privatekey() 读取它,我尝试将密钥粘贴到 php 中的多行字符串中(EOT 和 @ 987654325@ 分隔符)。然后我尝试在示例页面上复制/粘贴密钥,但仍然出现相同的错误,我在这里遗漏了什么?
不知道这会不会是个问题,但是我在windows机器上开发,然后发送到远程服务器,也就是Linux机器……
编辑: 我是如何生成密钥的:
openssl genrsa -aes256 -out private.pem 2048
阅读:
openssl_get_privatekey('keys/private.pem','0mrY2mX9NeAb0RmpcoeF');
openssl_get_privatekey('file://'.__DIR__.'/keys/private.pem','0mrY2mX9NeAb0RmpcoeF');
还尝试过: openssl genrsa -out private.pem 2048 阅读:
file_get_contents('keys/private.pem');
也尝试了内联:
$private_key = <<<EOT
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCt2WlpqowIDCZj+KCAl6iNEHCZN4FCPF3YrWdhthS2ysjNIjmy
1WjrzWpIk2YhkHmpb/+vFc5Xwv+a4NuB9W+hUw5K6bkgnol2Zak4v0myHR0qZsQP
ot7vj1Od+rU/Nn29rnDkgowcNcnN5MqxPrDOayA1IysXo1hPg73Hq2o40QIDAQAB
AoGAfhfI2zk148hcN/pm/54ARIB+CsM1X4NFVhk/eKGGGKawSgje7JTZSt5sjkNK
umF9vKVdP/KC/SiUGBOrYnFQCvH7CYpG74XQmnKf7JhhTF8t+N6b9SKz7oRsLHXJ
YwDntLTJIMfnFSQe9M9LJTcUUmTkIvDqq4T6L6OfSIQ/UVkCQQDg0xv60l6ELEdQ
J27dTxfs/kG6C1yjkoFU1UnBa6VVF/4PDOaPY7HvGxjZW+i3tj59i01W/OHOwswA
2uGExZ2bAkEAxfTDeOZh3mOaJ34x+W2wXQYwSh37hveiAQDvr21g/vixHHIPwomI
pP6wfLFK/4ApJHKOkB9Ha/bvrVSvhZIgAwJAMNHGtp1txreyuJYHfekJ4f2IGjUT
ZbWPffNes7CDU0oFchE0E5jrb2dr6u8JRrM9OJfCMIxzICmukNT2uZUL1wJBAKd0
cTLBuIKWwR2ta/ry5iEbDhh0moTG0D2HHDrLDSVDHRfSCTDohTYF2SfyFl5ifOs/
GQgj3ZggEQoQPFaCkR8CQQCVVyEBlUum82VDgpV+fBTYxzQo+bs7eWWPn93ebThv
4BVEwAHe7T6mjXwtu5U1iOB5h837aUp9Gc3mWprs/HUr
-----END RSA PRIVATE KEY-----
EOT;
但我认为问题不在于我如何生成密钥,因为 README 中的示例对我不起作用
【问题讨论】:
-
请添加您的代码以查看您如何尝试生成它们。
-
编辑了问题,但我认为问题不在于我如何生成密钥,因为自述文件中的示例对我不起作用