我对所有证书有点不知所措,希望我能在这里找到帮助。
因此,基本上,我有一个侧面加载的UWP应用程序(我用Visual Studio创建的),该证书在接下来的几天内将用尽。我可以通过创建一个新证书来延长该证书,该证书也可以保存一年。但是我想知道是否可以将其从1年延长到5年左右。我发现的“解决方案”要么是购买证书,要么是自己创建证书。
买一个很好:我一直在浏览互联网,但是却无法说出我真正想要的东西。有几种不同的证书,我不知道UWP应用程序需要哪些证书。有人知道我要看什么吗?买一个很贵,我宁愿不要买错一个。
现在要创建一个自己的人。关于该操作有一些建议,但是在阅读了一些建议之后,感觉“指南”还不完整。不建议使用某些方法。其他一些人没有给我足够的信息让我自己去做。有没有人为如何为侧载UWP应用程序创建具有更长生命周期的证书提供很好的指导?
(目前还不是一个很重要的问题,但稍后可能会很重要。您将如何整合购买/自行创建的证书?)
编辑
到目前为止,我已经有了created a certificate for package signing了:我打开了Power Shell并在其中写下了代码:
$notAfter = [datetime]::Today.AddYears(5)
$thumb = (New-SelfSignedCertificate -Type Custom -Subject "CN=myCN" -KeyUsage DigitalSignature -FriendlyName iTest -CertStoreLocation "Cert:\LocalMachine\My" -NotAfter $notAfter).Thumbprint
$pwd = ConvertTo-SecureString -String t -Force -AsPlainText
Export-PfxCertificate -cert "Cert:\LocalMachine\My\$thumb" -FilePath C:\MyTest.pfx -Password $pwd
然后我像这样安装此证书:
- 在Windows RT PC中,映射网络共享或连接 USB驱动器,您可以在其中访问包含以下内容的AppPackages文件夹 要安装的应用程序包。使用Windows资源管理器打开该文件夹。
- 在文件夹中双击证书文件,然后点击“安装”。 证书。这将显示证书导入向导。
- 在“存储位置”组中,点击单选按钮以将所选选项更改为“本地计算机”。
- 单击下一步。点击确定以确认UAC对话框。
- 在 证书导入向导的下一个屏幕,更改选定的 将所有证书放置在以下存储中的选项。
- 点击 浏览按钮。在“选择证书存储”弹出窗口中,滚动 并选择“受信任的人”,然后点击“确定”。
- 点击“下一步”按钮; 出现一个新屏幕。点击完成按钮。
- 确认对话框 应该出现;如果是这样,请单击“确定”。 (如果出现其他对话框,则表明 证书有问题,您可能需要做一些 证书疑难解答。但是,描述在那做什么 案例超出了本主题的范围。)
然后在Visual Studio中,进入Package.appxmanifest
的属性
->选择证书->从文件中选择
我选择文件并收到以下错误消息:
清单设计器无法导入证书。
您选择的证书无效,因为它已过期或存在其他问题。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=241478。
但这对我没有帮助。我想我缺少很多步骤。我还需要做什么?
edit2
我尝试在Windows powershell中使用signtool:
signtool sign /fd sha256 /a /f C:\MyTest.pfx /p t C:\path\to\Package.appxmanifest
这不起作用。错误消息(德语到英语的免费翻译):
signtool:名称“ signtool”尚未标识为Cmdlet,函数,脚本文件或可执行文件的名称。检查正确的名称或路径,然后重试。
我的signtool.exe在这里:C:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ x86
答案 0 :(得分:1)
使用New-SelfSignedCertificate
PowerShell cmdlet创建self-signed certificate时,可以使用NotAfter
参数指定证书过期的日期和时间。请参见the docs作为示例。
然后必须将证书安装在打算侧面加载应用程序的设备上。有关如何在Windows 10上侧面加载应用程序的更多信息,请参考the docs和this answer。基本上,您需要打开侧面加载并导入证书。
如果应用程序已使用链接到客户端计算机上受信任的根证书颁发机构的证书进行签名,则无需导入证书。您从certificate authority (CA)购买的大多数证书都是。