5

更新: 一部は解決しましたが、他の部分は解決しませんでした

  1. 現在、CRX を更新しています (再構築ではありませんでした)。

  2. ただし、Chrome は https URL で XML または CRX を受け入れません。

#2は自己署名証明書だからだと思います。これを回避する方法があるかどうか誰かが知っていますか? (これは純粋に開発用であるため、内部でホストされています)

元の投稿:

内部 Web サイトでホストされているパッケージ拡張機能を作成しましたが、デスクトップからドラッグすることで Chrome に追加されます (Chrome では外部 Web サイト経由でパッケージ拡張機能をインストールできないため、こちらを参照してください: URL を使用して ExtensionInstallSources 設定を Chrome に追加した後)設定、「.crx」パッケージアプリのインストールは引き続き許可されません)。

マニフェストには、update_url自分のサイトにある XML ファイルが設定されています。その XML ファイルには、 の下に設定された crx ファイルの URL がありますupdatecheck codebase='...'。どちらのファイルも Web サイトに存在し、見つけることができます。また、XML ファイルと.xml ファイルのバージョン番号を から2.0.0.2に更新しました。拡張機能の index.html ファイルにも変更を加えました。2.0.0.2manifest.json

を確認したappidところ、XML ファイルと Chrome で同じです。

「拡張機能を今すぐ更新」ボタンを 50 回ほどクリックし、10 分待っても更新されません。

注:サイトがホストファイルでホストされている内部IP 192.168.1.108のエイリアスを作成しましたmyinternal.fakeが、これはchromeとfirefoxの両方で機能するため、それは問題ではないと思います

XML ファイルの更新 (場所: https://myinternal.fake/updates/helloworld.xml )

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
    <app appid='akchdaojnpiglpjeiamjpacbkppcgbgj'>
        <updatecheck codebase='https://myinternal.fake/helloworld.crx' version='2.0.0.2' prodversionmin='23' />
    </app>
</gupdate>

マニフェスト.json

{
    "manifest_version": 2,
    "name": "Hello World",
    "version": "2.0.0.2",
    "minimum_chrome_version": "23",
    "update_url": "https://myinternal.fake/updates/helloworld.xml",
    "icons": 
    {
        "16": "icon_16.png",
        "128": "icon_128.png"
    },
    "app": 
    {
        "background": 
        {
            "scripts": 
            [
                "main.js"
            ]
        }
    }
}

EDIT:私もチェックしましたが、ヘッダーはChromeで受け入れられるものです(これによると:http://developer.chrome.com/dev/extensions/hosting.html)。CRX ファイルを「text/plain」として送信し、ヘッダーを送信しないため、X-Content-Type-Options: nosniff有効である必要があります。

また、 から に変更しhttpshttpときに、[拡張機能を今すぐ更新] をクリックすると、拡張機能が一瞬消えます。これは、XML を読み取っていることを示していますが、まだ更新を受け入れていません!

4

2 に答える 2

3

この問題は、自己署名証明書と Chrome にあります。Chrome は、「承認された」機関でない限り、自己署名証明書からの拡張機能の更新を受け入れません。次の手順で機能します。

  1. 次の手順に従ってください: https://stackoverflow.com/a/15076602/857025証明書をエクスポートしてから、機関としてインポートします。

  2. Chrome を閉じる

  3. Chrome を再起動する

  4. 拡張機能ウィンドウが開いている場合は閉じる

  5. 「chrome://extensions」から再度開き、「今すぐ拡張機能を更新」をクリックします

次に、自己署名の https 接続にある拡張機能を更新する必要があります。

更新Chrome は自己署名証明書を受け入れるのに少し不安定なように見えるため、これは完璧な解決策ではありません。ランダムに更新が表示されなくなります。通常の http (update_url と CRX の URL 用) の使用に戻すと、毎回更新が行われます。

確認したところ、証明書はまだ信頼できる機関ですが、Chrome が突然更新を認識しなくなったので、これに問題があるはずです。

于 2013-06-04T23:42:25.700 に答える