Visual studio 如何通过Visual Studio 2019、2017和2015为Windows 10 UWP应用程序创建可工作的受信任和/或自签名证书
根据本文件: 以下命令描述如何创建windows cer文件(即来自受信任的提供程序的证书) 问题在于,在visual studio 2017中构建应用程序时,它只允许通过package.windows10.appxmanifest生成pfx文件。更新this命令行引用时,它不会生成pvk文件,因此需要添加Visual studio 如何通过Visual Studio 2019、2017和2015为Windows 10 UWP应用程序创建可工作的受信任和/或自签名证书,visual-studio,uwp,visual-studio-2017,certificate,self-signed,Visual Studio,Uwp,Visual Studio 2017,Certificate,Self Signed,根据本文件: 以下命令描述如何创建windows cer文件(即来自受信任的提供程序的证书) 问题在于,在visual studio 2017中构建应用程序时,它只允许通过package.windows10.appxmanifest生成pfx文件。更新this命令行引用时,它不会生成pvk文件,因此需要添加 MakeCert -r -pe -ss PrivateCertStore -n "CN=Contoso.com(Test)" testcert.cer 其他命令行选项,如/sv Subj
MakeCert -r -pe -ss PrivateCertStore -n "CN=Contoso.com(Test)" testcert.cer
其他命令行选项,如/sv SubjectKeyFile,将生成生成的pvk文件
但是,即使使用此命令行引用:
MakeCert -r -pe -ss PrivateCertStore -n "CN=Contoso.com(Test)" -sv testcert.pvk testcert.cer
将生成的证书文件植入visual studio会产生以下错误:
清单设计器无法导入证书
您选择的证书无效,无法签名,因为它已过期或存在其他问题。有关详细信息,请参阅
我去了链接,什么也解释不了到底发生了什么。一个人评论创建一个临时证书,但它是一个非特定的测试证书,只持续一年
是否有更好的方法使用makecert创建脚本?我如何知道证书最终是否正确构建?其他文档可能会有所帮助,但我没有发现任何其他内容
根据此文档:
您案例中的上述链接用于为驱动程序生成windows证书。如果要为UWP包生成证书,可以参考以下步骤:
步骤1:确定包的发布者名称
步骤2:使用MakeCert.exe创建私钥
步骤3:使用Pvk2Pfx.exe创建个人信息交换(.pfx)文件
有关更多详细信息,请参阅
您还可以使用下面的命令直接创建证书。您只需要将CN
参数替换为您的参数
制作Pvk
"<C:\Program Files (x86)\Windows Kits\10\bin\x64\MakeCert.exe>" /n "CN=Company, O=My Company, C=US" /r /pe /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e 01/01/2018 /sv C:\Development\certificates\Company.pvk C:\Development\certificates\Company.cer
”/n“CN=Company,O=mycompany,C=US”/r/pe/h0/eku“1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13”/e 01/2018/sv C:\Development\certificates\Company.pvk C:\Development\certificates\Company.cer
制作Cer
"<C:\Program Files (x86)\Windows Kits\10\bin\x64\Pvk2Pfx.exe>" /pvk C:\Development\certificates\Company.pvk /pi pvkPassword /spc C:\Development\certificates\Company.cer /pfx C:\Development\certificates\Company.pfx /po password! /pi password!
”/pvk C:\Development\certificates\Company.pvk/pi pvkPassword/spc:\Development\certificates\Company.cer/pfx C:\Development\certificates\Company.pfx/po密码/pi密码!
由@nico提供的答案陈述正确,但让我意识到问题的严重性超出了我最初描述的范围。因此,我整理了问题标题和问题,以提供更好的问题和后续答案
在网上搜索,我在很多不同的地方找到了这些答案,例如问题、评论中的答案、youtube等等。。。我决定把它放在一个整洁的地方,这样每个人都可以利用资源和学习
首先,人们必须问问自己,他们使用该应用程序的目的是什么?是将应用程序上载到Microsoft应用商店,还是仅在内部使用
无论哪种方式,您都需要调试和开发应用程序。调试不需要安装证书,因此从这个意义上讲,我们是安全的
如果您在组织内部使用该应用程序,或者只是在本地计算机上使用该应用程序,那么您将需要一个受信任的证书
此证书可以存在于两种不同的场景中
1A.**创建新的SelfSignedCertificate时,必须了解必须以非常特定的方式创建证书。这是用于自签名或CA颁发的证书 具体而言,证书必须具有2个属性 a) 。必须将基本约束扩展设置为Subject Type=End Entity。简单地说,这意味着。。。向您颁发此证书后,您不能让该证书成为具有颁发更多证书能力的后续证书颁发机构。换句话说。。。这是一个结束线证书 您可以在此处阅读有关约束的更多信息: b) 。增强密钥使用(EKU)扩展的值设置为代码签名。这样做的目的是防止证书被用于其预期用途以外的任何用途。。。确保软件来自软件发行商&&保护软件在发布后不受更改。
在证书的详细信息中,信息如下所示:
[NewRequest]
Subject = "C=US,ST=Florida,L=City,O=Your Company Information,OU=City
Information,CN=certname.com"
Requesttype = PKCS10
Exportable = TRUE
HashAlgorithm = md5
KeyAlgorithm = RSA
KeyLength = 2048
KeyUsage = CERT_DIGITAL_SIGNATURE_KEY_USAGE
FriendlyName = "FriendlyName CERT"
[Extensions]
2.5.29.19 = "{text}false"
2.5.29.37 = "{text}1.3.6.1.5.5.7.3.3"
在-TextExtension参数中缺少代码签名(1.3.6..1.5.5.7.3.3)。这让我经历了一段时间。我为上述类型添加了一个编辑,并添加了一些附加信息,用于在本地运行自签名CA证书,而不会收到警告。@whodee我正在尝试编辑它,但我不知道如何。。。我明白你的意思了。@RoyJacobs我看过你的编辑,Visual Studio有一个简单易行的临时工证书,但那是
$pwd = ConvertTo-SecureString -String <Your Password> -Force -AsPlainText
Export-PfxCertificate -cert "Cert:\LocalMachine\My\<Certificate Thumbprint>" -FilePath <FilePath>.pfx -Password $pwd
[NewRequest]
Subject = "C=US,ST=Florida,L=City,O=Your Company Information,OU=City
Information,CN=certname.com"
Requesttype = PKCS10
Exportable = TRUE
HashAlgorithm = md5
KeyAlgorithm = RSA
KeyLength = 2048
KeyUsage = CERT_DIGITAL_SIGNATURE_KEY_USAGE
FriendlyName = "FriendlyName CERT"
[Extensions]
2.5.29.19 = "{text}false"
2.5.29.37 = "{text}1.3.6.1.5.5.7.3.3"
-----BEGIN NEW CERTIFICATE REQUEST-----
-----END NEW CERTIFICATE REQUEST-----