【问题标题】:Laravel, php artisan passport:install errorLaravel,php工匠护照:安装错误
【发布时间】:2018-12-20 08:22:33
【问题描述】:

我对使用 Passport 在 Laravel 中设置 API 感到好奇,所以我在此处遵循了他们的文档:

https://laravel.com/docs/5.6/passport

一旦我跑了

php工匠护照:安装

它给了我这个错误:

    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 上找到有关此错误的任何信息。

作为最后一点,我尝试运行这个命令来检查 openssl_pkey_new 是否有效:

openssl_pkey_new(array("digest_alg" => "sha512","private_key_bits" => 4096,"private_key_type" => OPENSSL_KEYTYPE_RSA,));

这没有错误。

我们将不胜感激任何帮助或指出正确方向。

【问题讨论】:

    标签: laravel laravel-passport


    【解决方案1】:

    尝试在运行安装命令时传递长度选项:

    php artisan passport:install --length=256
    

    如果这不起作用,请尝试强制生成密钥:

    php artisan passport:key --force
    

    您可能需要事先运行composer update

    【讨论】:

    • 天哪,它成功了! (虚拟 hi-5)谢谢一百万!你不会相信我花了多少时间试图弄清楚这一点。没想到这么简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2017-11-29
    • 2017-12-10
    • 2016-08-31
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多