2014-06-27 77 views
0

我正在嘗試恢復爲JavaScript編寫的用於Firefox 1.5的舊擴展。 Firefox 3.0引入的其中一項變化是需要通過HTTPS或PKI保護擴展更新。由於我無法在我的網站上使用SSL解決方案,因此我需要使用PKI解決方案。用於Firefox擴展簽名的OpenSSL公共密鑰

所以,首先是生成私鑰和公鑰。我能夠使用OpenSSL通過以下this guide創建CA和客戶端(代碼簽名)證書。那麼,我如何擁有兩個密鑰和證書對:ca.crt,ca.key,code.crtcode.key

現在,我必須把公鑰帶入install.rdf<em:updateKey>字段。我用命令openssl -in code.key -outform DER -pubout做了這個,並將結果輸出(不包含^ -----。*行)複製到我的install.rdf中。現在,以這種方式生成的公鑰是base64編碼的,並以幾個等號結尾。我還沒有看到任何實際上有這些尾隨字符的例子。沒問題,還是我把錯誤的選項傳給了OpenSSL?

除此之外,使用uhura來簽署我的update.rdf看起來相當直接,但也沒有結尾==,這似乎與我通過上面的OpenSSL命令獲得的輸出有點奇怪。

任何幫助將不勝感激!

+0

尾隨「=」只是[base64](http://en.wikipedia.org/wiki/Base64)編碼中的填充字符。而且你不需要一個CA,但那應該不重要。你真的嘗試過,如果它的工作?如果你做了,而不是,那麼錯誤是什麼? – nmaier

+0

我知道'='是用於base64編碼的填充。但是在我用這種方式生成的兩個鍵中,它們都在最後產生了填充,而不是像我見過的每個示例以及由uhura生成的簽名那樣乾淨地結束。我目前沒有真正的測試手段,這就是爲什麼我把它作爲一個問題。 –

+0

也許這個示例鍵不需要填充('len(key)%3 == 0'),而你的密鑰呢?一旦你找到時間,就試試它,然後回報。現在它是太多的時間來重現和調試*一些可能不會被打破的東西... – nmaier

回答

1

我能夠使用本地主機web服務器配置得到這個工作。在這種情況下,OpenSSL命令是正確的,並且尾部填充是巧合,但它在獲取更新時起作用。