19

Google Chrome 拡張機能から SSL 証明書情報にアクセスしたいと考えています。

ここで API を調べました: http://code.google.com/chrome/extensions/api_index.html、しかし、仕事を成し遂げるものは何も見当たりませんでした。

理想的には、発行者、有効期間、サブジェクト、シリアル番号などにアクセスしたいと思います...

これは Mozilla/Firefox で可能なようです:

https://developer.mozilla.org/En/How_to_check_the_security_state_of_an_XMLHTTPRequest_over_SSL

http://www.sslshopper.com/article-perspectives-extension-to-change-how-firefox-handles-ssl-certificates.html

4

3 に答える 3

14

2018 年の回答: Webextensions (Chrome 拡張 API を使用) は Firefox 62 でこれを行うことができます

ブラウザ拡張とも呼ばれる WebExtension を作成する必要があります。

MDN のセキュリティ情報へのアクセスを参照してください

次のドキュメントも確認できます。

Firefox 62 が必要です。

ここに作業がありますbackground.js

var log = console.log.bind(console)

log(`\n\nTLS browser extension loaded`)

// https://developer.chrome.com/extensions/match_patterns
var ALL_SITES = { urls: ['<all_urls>'] }

// Mozilla doesn't use tlsInfo in extraInfoSpec 
var extraInfoSpec = ['blocking']; 

// https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webRequest/onHeadersReceived
browser.webRequest.onHeadersReceived.addListener(async function(details){
    log(`\n\nGot a request for ${details.url} with ID ${details.requestId}`)

    // Yeah this is a String, even though the content is a Number
    var requestId = details.requestId

    var securityInfo = await browser.webRequest.getSecurityInfo(requestId, {
        certificateChain: true,
        rawDER: false
    });

    log(`securityInfo: ${JSON.stringify(securityInfo, null, 2)}`)

}, ALL_SITES, extraInfoSpec) 

log('Added listener')

manifest.json:

{
    "manifest_version": 2,
    "name": "Test extension",
    "version": "1.0",
    "description": "Test extension.",
    "icons": {
        "48": "icons/border-48.png"
    },
    "background": {
        "scripts": ["background.js"]
    },
    "permissions": [
        "webRequest",
        "webRequestBlocking",
        "<all_urls>"
    ]
}

ここに画像の説明を入力

このコードがマージされると、Chromium でも実装される可能性があります。

于 2017-01-10T12:46:51.187 に答える
-1

a を使用しNPAPI plugin てそれを行うことができます。

于 2011-08-08T18:07:21.343 に答える