2016-05-19 10 views
5

私はChrome拡張機能を使用しましたが、オンラインで見つかったいくつかの例に基づいています。それはcrxファイルではありません。拡張IDは、この例で使用されているIDです。拡張機能をChromeストアにアップロードする前に変更したいと思います。私の質問は私がこれをどうやって変えるのですか? manifest.jsonファイルの文字を手動で変更するだけですか?または、拡張IDは固定フォーマットであるため何かから生成される必要がありますか?キーと同じですが、準備が整ったらもう何かをする前にこれらの2つをランダムに変更できますか?Chrome拡張機能に固有の拡張IDとキーを設定していますか?

{ 
    // Extension ID: rnldjzfmornpzlahmmmgbagdohdnhdic 
    "key": "MIGfMA3GCSqGSIb3DFEBAQUAA4GNADCBiQKBgQDcBHwzDvyBQ6bDppkIs9MP4ksKqCMyXQ/A52JivHZKh4YO/9vJsT3oaZhSpDCE9RCocOEQvwsHsFReW2nUEc6OLLyoCFFxIb7KkLGsmfakkut/fFdNJYh0xOTbSN8YvLWcqph09XAY2Y/f0AL7vfO1cuCqtkMt8hFrBGWxDdf9CQIDAQAB", 
    "name": "Name of extension", 
... 

答えて

11

拡張の署名が2つの「キー」で構成されていることを注意:

  • プライベートキーファイル、.pem、そのはCRXファイルに署名するために使用され、今後の更新のために同じでなければなりません。
  • マニフェストで生成された公開鍵は、将来の更新に署名する代わりに使用することができます(署名を検証するために使用されます)が、特定のIDをに展開するために使用することができます。公開鍵のハッシュ(好奇心をそそる人のために、keyが存在しない場合、解凍された拡張子はhashing the pathに戻ります)。

    1. は、Googleがそれを処理してみましょう:

あなたは、2つのオプションがあります。

マニフェストからkeyフィールドを完全に削除します。それを店に提出してください。

CWSは、拡張のための新しい鍵ペア(結果的に新しいID)を生成します。この鍵ペアは、更新の間に保持されます。開発版のIDを維持する必要がある場合は(必ずしも良いことではありませんが、Chromeは自動アップデートと混同されますが、storage.syncテストの間は良いアイデアです)、新しい情報公開keyを開発者ダッシュボードから「詳細情報"あなたの商品のリンク。

しかし、CWSから.pemキーを取得する方法はありません。あなたはCWSに自動更新ソースとして永久にロックされています。 Chromeは拡張機能のインストールを他の場所から許可しないため、問題はありません。

  • 秘密鍵の保持制御。

    「拡張パック」機能を使用して、chrome://extensionsから拡張子のCRXファイルを生成できます。

    既存の.pemファイルを指定しないと、拡張機能の新しい鍵ペア(ID)が生成されます。

    .pemキーを守るために、あなたの人生は慎重ににしてください。これは、あなたが開発者として偽装するために使用されます。

    次に、CWSに内線番号を提出すると、include the .pem in the archive's root as key.pemとなります。これは、新しい鍵ペアを生成する代わりに、CWSに使用を指示します。署名する前に拡張機能を変更するため、秘密鍵をGoogleに提供する必要があります。

    IDは(ランダムに生成された)公開鍵のハッシュであるため、という小さなの既存の内線との衝突の可能性があります。その場合は、.pemファイルを別のファイルに再生成してください。いずれの場合においても

  • :アップロード時にマニフェストにkeyフィールドを含まない、またはCWSは、それを拒否することができます。


    また、エクステンション内の内線番号をハードコードしないでください。これは、それらの機能のいずれかを使用してアクセス可能です:

    chrome.runtime.getManifest().id // gives "youridehere" 
    chrome.runtime.getURL("something") // gives "chrome-extension://youridhere/something" 
    

    そして、CSSファイルで、あなたがマクロとして[email protected]@extension_id__を使用することができます。

    background-image:url('chrome-extension://[email protected]@extension_id__/background.png'); 
    
    +0

    「CWSから.pemキーを取得する方法はありません」と私の質問に答えました。情報をありがとう! – cxw

    3

    あなたはマニフェストのためのキーと拡張IDを所有して作成することができます。

    openssl genrsa 2048 | opensslのPKCS8 -topk8 -nocrypt -out key.pem

    キー:

    opensslのRSA -in key.pem -pubout -outform DER | openssl base64で-A

    拡張ID:

    opensslのRSA -in key.pem -pubout -outform DER | shasum-a 256 |ヘッド -c32 | tr 0-9a-f a-p

    関連する問題