GitHub Pagesツール

無料 VAPID キージェネレーター

Web Crypto APIを使用してWebプッシュ通知用のVAPIDキーペアを生成します。

ツールを読み込み中...

VAPID キージェネレーターとは

VAPID(Voluntary Application Server Identification)は、Web Push Protocolの一部です。公開鍵と秘密鍵のペアを使用して、プッシュサービス(GoogleのFCMやMozillaのautopushなど)に対するアプリケーションサーバーを識別します。公開鍵はプッシュ購読中にブラウザに送信されます。秘密鍵はサーバーに残り、プッシュメッセージに署名します。これらを組み合わせることで、プッシュメッセージがなりすましではなく、実際のサーバーから送信されたものであることを証明します。

クイックアンサー

Web Push通知用のVAPID鍵ペアを生成します。公開鍵はpushManager.subscribe()用にフロントエンドJavaScriptに配置します。秘密鍵はサーバーに残り、web-pushライブラリまたはFirebaseと共に使用してプッシュメッセージに署名します。秘密鍵は決して公開しないでください。

Last updated: 2026-05-28

制限事項

  • ブラウザで生成された鍵は、ブラウザ環境と同じ程度にしか安全ではありません。プロダクションでの使用には、OpenSSLを使用してサーバーサイドで鍵を生成し、秘密鍵をセキュアなシークレットマネージャーに保存することを検討してください。
  • Web Crypto APIにはセキュアコンテキスト(HTTPSまたはlocalhost)が必要です。ブラウザがWeb Cryptoをサポートしていない場合、ツールは鍵を生成できません。
  • VAPID鍵はP-256(prime256v1)曲線を使用します。一部の古いプッシュライブラリは異なる形式を期待するため、特定のプッシュサービスまたはライブラリが期待する形式を常に確認してください。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. [鍵ペアを生成]ボタンをクリックして、ブラウザのWeb Crypto APIを使用して新しいP-256鍵ペアを作成します。
  2. 公開鍵をフロントエンドJavaScriptにコピーし、pushManager.subscribe()で使用します。
  3. 秘密鍵をサーバーの環境変数にコピーし、web-pushライブラリまたはFirebaseで使用します。
  4. 秘密鍵は決して公開しないでください。サーバーに残り、プッシュメッセージの署名に使用されます。

主な用途

  • WebアプリにWebプッシュ通知を追加するためのVAPID鍵ペアを生成する。
  • 誤って公開されたVAPID鍵ペアを新しいものに交換する。
  • web-push npmライブラリ、Firebase Cloud Messaging、またはカスタムプッシュサーバーでプッシュ通知を設定する。

用途

使用例

Node.jsサーバーでのweb-push設定

鍵ペアを生成します。秘密鍵を環境変数に保存します。フロントエンドで公開鍵を使用してユーザーを購読します。サーバーでは、両方の鍵とmailto:連絡先URLを指定してwebpush.setVapidDetails()を使用します。

Firebase Cloud MessagingのWeb Push設定

鍵ペアを生成します。Firebaseコンソール > プロジェクト設定 > Cloud Messagingで、Web Push証明書の下に鍵ペアをアップロードします。Firebase Webアプリの初期化で公開鍵を使用します。

よくあるミス

  • 秘密鍵を公開gitリポジトリにコミットすること。秘密鍵は秘密に保ち、環境変数またはシークレットマネージャーを通じて管理する必要があります。
  • 複数の無関係なアプリケーションに同じVAPID鍵ペアを使用すること。セキュリティ分離のため、アプリケーションごとに別々の鍵ペアを生成してください。
  • 秘密鍵を紛失すること。VAPID秘密鍵を回復する方法はありません。新しいペアを生成し、サーバーとすべての購読済みクライアントの両方を更新する必要があります。

検証

  1. ブラウザをプッシュ通知に購読し、サーバーからテストプッシュメッセージを送信して鍵ペアをテストします。
  2. 公開鍵がフロントエンドJavaScriptに正しく埋め込まれていることを、pushManager.subscribe()呼び出しのapplicationServerKeyパラメータを確認して検証します。

FAQ

VAPID キージェネレーターのFAQ

サーバー上でVAPID鍵を生成できますか?

はい。プロダクションでの使用にはそれが推奨されます。OpenSSLを使用します:openssl ecparam -genkey -name prime256v1 -noout -out vapid_private.pem && openssl ec -in vapid_private.pem -pubout -out vapid_public.pem。このブラウザツールは開発、テスト、迅速なセットアップに便利です。

VAPID秘密鍵が公開された場合はどうなりますか?

秘密鍵を持つ者は誰でも、あなたのサーバーから送信されたように見えるプッシュメッセージを送信できます。直ちに新しい鍵ペアを生成し、サーバーを新しい鍵で更新し、新しい公開鍵ですべてのプッシュユーザーを再購読してください。プッシュ購読は公開鍵に紐づいています。古い購読は新しい鍵で署名されたメッセージを受信できません。

Firebase Cloud MessagingにVAPID鍵ペアは必要ですか?

はい。FCMでWeb Push Protocolを使用する場合は必要です。Firebaseは、プロジェクト設定 > Cloud Messaging > Web Push証明書の下にVAPID鍵ペアを必要とします。これはFirebaseサーバーキーとは別のもので、プッシュサービスとしてFCMでWebプッシュ通知を機能させるために必要です。

関連ツール

その他のgithub pagesツール

こちらもお試しください

こちらもお試しください