如何延长Windows应用程序证书的有效期?我们正在侧面加载应用程序/主要障碍是证书每年都会过期,通过 GP 更新它很麻烦,因为我们的环境中已经存在问题。我们希望将其延长至少 5 年。
我设法找到了有关如何创建代码签名证书的 technet 文章,但它不起作用。 Visual Studio 不接受该证书并给出一条错误消息,指出该证书已损坏或无效。https://learn.microsoft.com/en-us/windows/uwp/packaging/create-certificate-package-signing#create-a-self-signed-certificate https://learn.microsoft.com/en-us/windows/uwp/packaging/create-certificate-package-signing#create-a-self-signed-certificate
https://technet.microsoft.com/itpro/powershell/windows/pki/new-selfsignedcertificate https://technet.microsoft.com/itpro/powershell/windows/pki/new-selfsignedcertificate
有什么办法可以轻松做到吗?
该过程描述于微软文档 https://learn.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing,但很复杂。没有“Visual Studio”所建议的“视觉”部分。
要旁加载应用程序,创建自签名证书就足够了,这意味着您信任自己。不涉及 CA(认证机构)的信任。
这些步骤对我有用。整个过程在 PowerShell 中以管理员身份运行。
创建证书
New-SelfSignedCertificate -Type Custom -Subject "CN=Company Name, O=Company Name Inc., C=CA" -KeyUsage DigitalSignature -FriendlyName "Programming certificate, 50 years" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotBefore (Get-Date) -NotAfter (Get-Date).AddYears(50)
- The
-Subject
项目可能只包含CN=
部分,我相信其他部分是可选的。O=
似乎指的是组织和C=
国家/地区代码。
- The
-CertStoreLocation
and -TextExtension
所写内容正确(请参阅文档)。我不太熟悉什么-CertStoreLocation
真正的意思是,因为我后来找不到它,但这就是微软的建议,并且与该过程无关。
- The
(Get-Date)
位获取当前日期,并且.AddYears(50)
将被修改为证书应持续多少年。
输出将显示指纹;复制它。
导出证书
-
设置密码变量(令人困惑的是,这里的密码不带引号)。
$password = ConvertTo-SecureString -String CustomPasswordYouWouldChoose -Force -AsPlainText
-
导出证书;将指纹粘贴到“Cert:\CurrentUser\My...”字符串中并选择文件路径(在我的情况下,使用 C:\ 驱动器效果很好)。
Export-PfxCertificate -cert "Cert:\CurrentUser\My\YOURTHUMBPRINTHERE" -FilePath C:\ProgrammingCertificate.pfx -Password $password
在 Visual Studio 中添加证书
转到 Package.appxmanifest > 打包 > 选择证书... > 从文件中选择... > 然后选择导出的证书。
在旁载部署上安装证书
双击证书文件 > 安装证书... > 本地计算机 > 将所有证书放入以下存储 > 浏览 >值得信赖的人> 全部接受,导入应该会成功。恭喜,该应用程序现已由您自己认证。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)