2011-11-05 16 views
0

私は、受信したSSL証明書の詳細を抽出する必要があるFirefoxアドオンを構築しています(CA、CA(認証局)の国名など)。 JavaScriptを使用して上記の詳細を抽出することが可能かどうか、またはOpenSSLを使用して両方をリンクする必要があるかどうかを知りたいですか?JavaScript/OpenSSLを使用したSSL証明書の詳細を抽出します

もっと良い解決策はありますか?

+1

受信方法は?ブラウザに読み込まれたWebページ、XMLHttpRequest、その他何か? –

+0

Wladimir Palant遅く応答して申し訳ありませんが、Webブラウザから詳細を抽出したいと思いますが、私は初心者向けの開発者です。初心者には役立つものは何でも –

+0

@Pratik:http://をご覧くださいstackoverflow.com/editing-help#link-comment-reply、あなたが返信している人は、別の方法で通知を受けることはありません。 –

答えて

1

Firefoxの[ページ情報]ダイアログにすでに証明書情報が表示されているので、how it is implementedを見るとよいでしょう。要約すると:

  • <browser><tabbrowser>要素(FirefoxウィンドウでgBrowserは)プロパティsecurityUIを持っています。
  • このプロパティの値はnsISSLStatusに到達するためのnsISSLStatusProviderインターフェイスを実装しています。
  • そこから、すべての必要な情報を持っているnsIX509Certに行くことができます。

コード例:インターフェースは、発行者の国を抽出する方法を提供していないことを

var status = gBrowser.securityUI 
        .QueryInterface(Components.interfaces.nsISSLStatusProvider) 
        .SSLStatus; 
if (status && !status.isUntrusted) 
{ 
    // This shows: OU=Equifax Secure Certificate Authority,O=Equifax,C=US 
    alert(status.serverCert.issuerName); 

    // This shows: Equifax Secure Certificate Authority 
    alert(status.serverCert.issuerOrganizationUnit); 
} 

注意、あなたはstatus.serverCert.issuerName値を自分で解析する必要があります。また、ルートCAではなく、即時発行者の情報のみをこの方法で取得します。ルートCAにアクセスするには、status.serverCert.issuerプロパティを使用してチェーンを上るべきです。

+0

実際には、** PHPスクリプトを使用してOpenSSL **コマンドを実行するbashスクリプトを呼び出すもう1つのアイデアがあります。スクリプトにはWeb-Server_URLが付いています。解決方法についてのあなたの意見はありますか?ですか?すぐ返事と素敵な解決に感謝します。 –

+0

@PratikBosamiya:あなたは間違った人に尋ねています。適切なタグを付けて新しい質問を作成したいと思うかもしれません。 –

+0

私は実際に** status.serverCert.issuerNaame **を解析する際にいくつかの問題に直面しています。関数から返された値を文字列として格納できるかどうかを知ることができます。私はこの値をStringとして解釈し、 '** lastIndexOf()**'関数を使用しましたが、スクリプトは機能しませんでしたので、助けてください。 –