2017-04-13 233 views
0

我開發了一個phonegap應用程序,現在我想發佈它的Windows手機。但是,據我們所知,自Windows 10推出以來,我們必須製作一個.pfx文件來簽署應用程序。Windows .pfx文件中的證書有EKU問題

我創建了一個證書與OpenSSL的,當我嘗試使用該密鑰我得到這個錯誤打造我的應用程序:

Error - Your Windows Signing Key must have an EKU (Enhanced Key Usage) property of "Code Signing"

我不知道是什麼恰恰意味着。任何人都可以幫我解決這個問題嗎?

+0

EKU生成私鑰和證書是一個擴展,你可以放入證書,並且一些應用程序在使用證書時可能需要該擴展名。你可以使用openssl配置文件來包含它(並且你將不得不生成另一個證書) – 2017-04-14 01:48:28

+0

我建議從全球信任的商業CA購買代碼簽名證書。自簽名證書價值不大,可用於測試目的。 – Crypt32

+0

@Hugo:你可以請我如何使用openssl配置文件?因爲我不知道打開SSL – pnandha

回答

2

EKU(增強型密鑰使用)是證書擴展,用於確定證書的用途。爲了簽署其他應用程序,Windows期望該證書包含代碼簽名EKU擴展。

我想你正在使用自簽名證書。您可以使用以下命令生成一個包含證書的pfx文件供您使用。雖然我不確定是否可以使用自簽名證書在Windows應用商店推送應用程序

首先將以下內容保存爲文件名「code_signing」。該文件是您的證書的配置文件。更改在「我的DN」

[ req ] 
prompt    = no 
distinguished_name = my dn 

[ my dn ] 
commonName = secure.example.com 
countryName = XX 
localityName = XXX 
organizationName = Org Name 
organizationalUnitName = BU Name 
stateOrProvinceName = YY 
emailAddress = [email protected] 
name = name 
surname = surName 
givenName = name 

[code_signing] 
extendedKeyUsage = 1.3.6.1.5.5.7.3.3 

最後一行執行extendedKeyUsage = 1.3.6.1.5.5.7.3.3指定EKU代碼簽名等領域。 現在使用以下使用上面的配置文件

openssl req -x509 -config code_signing -extensions 'code_signing' -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificate.crt 

現在使用產生private.key和certificate.crt來生成PFX文件

openssl pkcs12 -export -out codeSigning.pfx -inkey private.key -in certificate.crt