Есть ли способ получить доступ к информации о сертификате из расширения Chrome - PullRequest
12 голосов
/ 04 июля 2011

Я хотел бы получить доступ к информации о сертификате SSL из расширения Google Chrome.

Я посмотрел на 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

Ответы [ 3 ]

7 голосов
/ 10 января 2017

2018 ответ: webextensions (которые используют API расширения Chrome) могут сделать это в 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>"
    ]
}

enter image description here

Он также может быть реализован в Chromium после того, как этот код объединен .

1 голос
/ 04 сентября 2013

В настоящее время он недоступен, но есть предложение API Chromium webRequest SSL Hooks (от 27.02.2012), в котором рассматривается эта тема.

0 голосов
/ 08 августа 2011

Вы можете использовать NPAPI plugin, чтобы сделать это.

...