プログラミング初心者です。
WebPushをLaravel(5.8)で実装したい過程で、
php artisan webpush:vapid
実行したら
ErrorException : openssl_pkey_new(): private key length is too short; it needs to be at least 384 bits, not 0
vendor/web-token/jwt-core/Util/ECKey.php:157
$key = openssl_pkey_new([
156| 'curve_name' => self::getOpensslCurveName($curve),
> 157| 'private_key_type' => OPENSSL_KEYTYPE_EC,
158| ]);
というエラーが出ました。
エラー文検索しても解決できず、メンターさんと1時間以上格闘しましたが、それでも解決できませんでした。
「メンターさんが解決できなかったら私にできるわけないだろうと」諦めかけてました。
でもvapid作成できなきゃ進まないため、検索してったらこのサイトを見つけました。
bitsが関係してるだろうから、エラーが出てる場所のECKey.phpの$key = openssl_pkey_new([]);
の[ ]中にこれを入力してみたら・・・
"private_key_bits" => 2048,
まさかの
VAPID keys set successfully.
衝撃すぎて、体が飛び起きました。
ちなみにマニュアルサイトにある
OPENSSL_KEYTYPE_RSA
ではダメでOPENSSL_KEYTYPE_EC
じゃないと
ErrorException : Undefined index: ec
というエラーが出ちゃいました。返されるキーのデータが違うみたいですよ(正直違いよくわかりません)。