1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

webpush:vapidでのopenssl_pkey_new()のエラー

Last updated at Posted at 2021-06-04

プログラミング初心者です。

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

というエラーが出ちゃいました。返されるキーのデータが違うみたいですよ(正直違いよくわかりません)。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?