【问题标题】:Certificate in windows .pfx file has EKU issueWindows .pfx 文件中的证书存在 EKU 问题
【发布时间】:2017-04-13 13:08:18
【问题描述】:

我在 phonegap 中开发了一个应用程序,现在我想为 windows 手机发布它。但是我们知道,自从 Windows 10 推出以来,我们必须制作一个 .pfx 文件来签署应用程序。

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

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

我不知道具体是什么意思。谁能帮我解决这个问题?

【问题讨论】:

  • EKU 是您可以放入证书的扩展,某些应用程序在使用证书时可能需要该扩展。您可以使用 openssl 配置文件来包含它(并且您必须生成另一个证书)
  • 我建议从全球受信任的商业 CA 购买代码签名证书。自签名证书的价值差异不大,可用于测试目的。
  • @Hugo:请问我如何使用 openssl 配置文件?因为我不知道打开 ssl
  • 我不经常使用配置文件,所以我建议你 google :) - 也许这会有所帮助:phildev.net/ssl/opensslconf.html

标签: cordova windows-phone-8 ssl-certificate x509certificate


【解决方案1】:

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

最后一行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

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2019-03-26
    • 2020-10-27
    相关资源
    最近更新 更多