我正在尝试覆盖 Windows Store 应用程序中的证书验证以接受两个外部服务(使用 HttpClient)上的自签名证书,以允许 Windows 8 应用程序接受证书并建立 SSL 的信任关系
编辑:
我实现了这里记录的方法:Installing certs by using the appmanifest
并将相关的 .cer 文件添加到我的应用程序中,并确保它们是“内容”和“始终复制”。
我的 package.appxmanifest Extensions 部分如下所示:
<Extensions>
<Extension Category="windows.certificates">
<Certificates>
<Certificate StoreName="TrustedPeople" Content="Assets\ReportingServices.cer" />
<Certificate StoreName="TrustedPeople" Content="Assets\Crm.cer" />
<Certificate StoreName="CA" Content="Assets\DigiCertHighAssurance.cer" />
<TrustFlags ExclusiveTrust="true" />
<SelectionCriteria AutoSelect="true" />
</Certificates>
</Extension>
但这仍然不起作用。
我尝试将应用程序证书放在“根”StoreName 中,但仍然没有成功。有没有人知道为什么这可能不起作用?
最佳答案
只是为了节省您的时间。我必须通过 2 天的反复试验来解决这个问题。在这里你可以解决它。
将 .cer 文件添加到您的项目中,将构建操作设为“内容”,复制为较新
然后将此添加到您的应用 list
<Capabilities>
<Capability Name="sharedUserCertificates" />
<Capability Name="enterpriseAuthentication" />
<Capability Name="privateNetworkClientServer" />
<Capability Name="internetClient" />
</Capabilities>
<Extensions>
<Extension Category="windows.certificates">
<Certificates>
<Certificate StoreName="Root" Content="Certificates\vibeapi.cer" />
<TrustFlags ExclusiveTrust="true" />
<SelectionCriteria AutoSelect="true" />
</Certificates>
</Extension>
</Extensions>
并在您后面的代码中,您现在可以使用此访问该文件
//Testing https connection
HttpClientHandler msgHandler = new HttpClientHandler();
using (System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient(msgHandler, true))
{
var HTTPSURL = new Uri("https://www.sample.net/");
var response = await httpClient.GetAsync(HTTPSURL);
var responseStr = await response.Content.ReadAsStringAsync();
}
请参阅链接以供引用
help
关于windows-store-apps - 如何信任 Windows 商店应用程序中的自签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13119649/