Windows .pfx 文件中的证书存在 EKU 问题

pna*_*dha 1 ssl-certificate x509certificate cordova windows-phone-8

我已经在phonegap中开发了一个应用程序,现在我想将它发布到windows手机上。但众所周知,自从 Windows 10 推出以来,我们必须制作.pfx文件来对应用程序进行签名。

我已经使用 OpenSSL 创建了一个证书,当我尝试使用该密钥构建我的应用程序时,我收到此错误:

错误 - 您的 Windows 签名密钥必须具有“代码签名”的 EKU(增强型密钥用法)属性

我不知道具体是什么意思。有人可以帮我解决这个问题吗?

小智 5

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 = mail@example.com
name = name
surname = surName
givenName = name

[code_signing]
extendedKeyUsage = 1.3.6.1.5.5.7.3.3
Run Code Online (Sandbox Code Playgroud)

最后一行 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
Run Code Online (Sandbox Code Playgroud)

现在使用生成的private.key和certificate.crt来生成您的pfx文件

openssl pkcs12 -export -out codeSigning.pfx -inkey private.key -in certificate.crt
Run Code Online (Sandbox Code Playgroud)