Laravel, php artisan passport:install 错误
Laravel, php artisan passport:install error
我对使用 Passport 在 Laravel 中设置 API 感到好奇,所以我在此处遵循了他们的文档:
https://laravel.com/docs/5.6/passport
曾经我运行
php artisan passport:install
它给我这个错误:
ErrorException : openssl_pkey_new(): private key length is too short; it needs to be at least 384 bits, not 0
at /Users/fantastisk/web/blog-laravel/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php:560
556| $config = array();
557| if (isset($this->configFile)) {
558| $config['config'] = $this->configFile;
559| }
> 560| $rsa = openssl_pkey_new(array('private_key_bits' => $bits) + $config);
561| openssl_pkey_export($rsa, $privatekey, null, $config);
562| $publickey = openssl_pkey_get_details($rsa);
563| $publickey = $publickey['key'];
564|
Exception trace:
1 openssl_pkey_new(["4096", "/Users/fantastisk/web/blog-laravel/vendor/phpseclib/phpseclib/phpseclib/Crypt/../openssl.cnf"])
/Users/fantastisk/web/blog-laravel/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php:560
2 phpseclib\Crypt\RSA::createKey("4096")
/Users/fantastisk/web/blog-laravel/vendor/laravel/passport/src/Console/KeysCommand.php:35
这是我在 openssl.cnf 文件中的内容
# minimalist openssl.cnf file for use with phpseclib
HOME = .
RANDFILE = $ENV::HOME/.rnd
distinguished_name = req_distinguished_name
[ v3_ca ]
我正在 运行使用 php 7.1 mac(我也尝试使用 openssl 从源代码构建它),SSL 版本 => LibreSSL/2。 0.20.
我也尝试使用 homestead 遵循文档,这给了我完全相同的错误。
在我看来 phpseclib 库似乎有问题,但我在 google 上找不到任何关于此错误的信息。
作为最后的说明,我尝试了 运行ning 这个命令来检查 openssl_pkey_new 是否有效:
openssl_pkey_new(array("digest_alg" => "sha512","private_key_bits" => 4096,"private_key_type" => OPENSSL_KEYTYPE_RSA,));
没有错误。
任何帮助或指出正确的方向将不胜感激。
尝试在 运行 安装命令时传递长度选项:
php artisan passport:install --length=256
如果这不起作用,请尝试强制生成密钥:
php artisan passport:key --force
您可能需要 运行 composer update
之前。
我对使用 Passport 在 Laravel 中设置 API 感到好奇,所以我在此处遵循了他们的文档:
https://laravel.com/docs/5.6/passport
曾经我运行
php artisan passport:install
它给我这个错误:
ErrorException : openssl_pkey_new(): private key length is too short; it needs to be at least 384 bits, not 0
at /Users/fantastisk/web/blog-laravel/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php:560
556| $config = array();
557| if (isset($this->configFile)) {
558| $config['config'] = $this->configFile;
559| }
> 560| $rsa = openssl_pkey_new(array('private_key_bits' => $bits) + $config);
561| openssl_pkey_export($rsa, $privatekey, null, $config);
562| $publickey = openssl_pkey_get_details($rsa);
563| $publickey = $publickey['key'];
564|
Exception trace:
1 openssl_pkey_new(["4096", "/Users/fantastisk/web/blog-laravel/vendor/phpseclib/phpseclib/phpseclib/Crypt/../openssl.cnf"])
/Users/fantastisk/web/blog-laravel/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php:560
2 phpseclib\Crypt\RSA::createKey("4096")
/Users/fantastisk/web/blog-laravel/vendor/laravel/passport/src/Console/KeysCommand.php:35
这是我在 openssl.cnf 文件中的内容
# minimalist openssl.cnf file for use with phpseclib
HOME = .
RANDFILE = $ENV::HOME/.rnd
distinguished_name = req_distinguished_name
[ v3_ca ]
我正在 运行使用 php 7.1 mac(我也尝试使用 openssl 从源代码构建它),SSL 版本 => LibreSSL/2。 0.20.
我也尝试使用 homestead 遵循文档,这给了我完全相同的错误。
在我看来 phpseclib 库似乎有问题,但我在 google 上找不到任何关于此错误的信息。
作为最后的说明,我尝试了 运行ning 这个命令来检查 openssl_pkey_new 是否有效:
openssl_pkey_new(array("digest_alg" => "sha512","private_key_bits" => 4096,"private_key_type" => OPENSSL_KEYTYPE_RSA,));
没有错误。
任何帮助或指出正确的方向将不胜感激。
尝试在 运行 安装命令时传递长度选项:
php artisan passport:install --length=256
如果这不起作用,请尝试强制生成密钥:
php artisan passport:key --force
您可能需要 运行 composer update
之前。