2014-11-01 2 views
1

FF에 신뢰할 수있는 인증서 저장소에 인증서를 추가하는 방법을 이해하려고합니다. 지금까지 명확한 대답을 찾을 수 없었지만 파이어 폭스 확장 기능으로 수행 할 수 있어야한다는 것을 이해했습니다.Firefox estances : 프로그래밍 방식으로 인증서를 신뢰 인증서 저장소에 추가하십시오.

https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Miscellaneous#Adding_custom_certificates_to_a_XULRunner_application

사람이 FF의 현대 버전이 작업을 수행하는 방법을 알고 있나요 : 이것은 힌트가 될 수있다? 모범 사례가 있습니까? 사전에

감사, 스테파노

답변

3

그냥 그것을 할 관리 몇 가지 추가 조사 후 ... 내 자신의 질문에 대답하기 위해 나는 어떤 기사에서이다 것은 매우 정확하다 생각합니다. XPCOM을 반드시 빌드 할 필요는 없습니다.

난 그냥 간단하게 아래의 코드에 추가 만들었습니다

function addCertificate() { 
    var certDB = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509CertDB); 
    var is = Cc["@mozilla.org/scriptableinputstream;1"].getService(Ci.nsIScriptableInputStream); 
    var file = new FileUtils.File("/tmp/famfor.crt"); 
    var channel = gIOService.newChannelFromURI(gIOService.newFileURI(file)); 

    var input = channel.open(); 
    is.init(input); 
    var envelope = is.read(input.available()); 
    is.close(); 
    input.close(); 

    var beginCert = "-----BEGIN CERTIFICATE-----"; 
    var endCert = "-----END CERTIFICATE-----"; 

    envelope = envelope.replace(/[\r\n]/g, ""); 
    var begin = envelope.indexOf(beginCert); 
    var end = envelope.indexOf(endCert); 
    var cert = envelope.substring(begin + beginCert.length, end); 

    console.log(cert); 

    certDB.addCertFromBase64(cert, "C,C,C", ""); 
}; 

당신이 그것을 알아 냈 그 공유 :

+0

감사합니다 아주 많이 말을 아주 간단합니다. 나는이 해결책을 보는 것에 흥미가 있었다! '/ tmp/famfor.crt'의 내용은 무엇입니까? – Noitidart

+0

파이어 폭스의 certdb에 추가하려는 인증서입니다 (파일에서 가져 와서 사용하기 만하면됩니다) – Ste

관련 문제