2012-10-29 23 views
16

Windows 8 Uygulamasına izin vermek için iki harici hizmette (HttpClient kullanarak) kendinden imzalı bir sertifikayı kabul etmek üzere bir Windows Store Uygulamasında sertifika doğrulamasını geçersiz kılmaya çalışıyorum sertifikaları kabul ve SSL için bir güven ilişkisi kurmakBir windows store uygulamasında kendinden imzalı bir sertifikaya güvenme

DÜZENLEME: Ben yaklaşım burada belgelenen uygulamıştır: Installing certs by using the appmanifest

ve benim başvuruyla ilgili .cer dosyaları eklendi ve 'İçerik' ve 'kopyala vardır sağlanmalıdır Her zaman'.

<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> 

ama bu hala çalışmıyor:

Benim package.appxmanifest Uzantıları bölüm aşağıdaki gibi görünüyor.

Uygulama sertifikalarını 'Root' StoreName ürününe koymayı denedim, ancak yine de başarı yok. Bunun neden işe yaramayacağına dair bir fikri olan var mı lütfen?

+0

için

//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(); } 

bkz bağlantı Ben de bu problemin çözümünü öğrenmek istiyorum. Herhangi bir şans olmadan appxmanifest aswell de public .cer dosyasını eklemeye çalıştım. – ReinierDG

+0

Mümkün iki kopya: http://stackoverflow.com/questions/9986039/overriding-certificate-verification-in-windows8 – pkumar0

+0

@ pkumar0 bu farklı bir problemdir – Redeemed1

cevap

0

oldukça olduğu gibi proje köküne cer dosyasını koymak ve bu eskisinin biraz

+0

Artık projem yok, test yapamıyorum bu. Belki başka biri bunu denemek için bunu deneyebilirdi – Redeemed1

+0

Bunu başarılı olmadan denedim. –

1

İçerik = "file.cer" için manifest dosyasında İçerik bölümünü değiştirmek, ancak görme eğer çalışacaktır az sayıda gözlemci çözümümü vereceğim.

// Create the httpClient and send the request 
HttpBaseProtocolFilter aHBPF = new HttpBaseProtocolFilter(); 
// If you want to ignore expired Certs 
aHBPF.IgnorableServerCertificateErrors.Add(ChainValidationResult.Expired); 
// Untrused because this is a self signed cert that is not installed 
aHBPF.IgnorableServerCertificateErrors.Add(ChainValidationResult.Untrusted); 
// Host names and certs names may not match 
aHBPF.IgnorableServerCertificateErrors.Add(ChainValidationResult.InvalidName); 

HttpClient httpClient = new HttpClient(aHBPF); 
HttpResponseMessage response = await httpClient.SendRequestAsync(httpRequest, HttpCompletionOption.ResponseHeadersRead).AsTask(cts.Token); 
+1

NeO bunun için teşekkürler, ilginç bir çözüm gibi görünüyor ve çerçeveyi iyi kullanıyor. Bende ne bir proje var ne de artık bir şey yapmak için zamanım var. Eğer çalışıp çalışmadığını teyit etmek için başka biri bunu deneyebilirse, bunu bir cevap olarak işaretleyebilirim. – Redeemed1

1

Sadece zaman kazanın. Bunu 2 günlük deneme ve hata için çözmeliyim. Buradan çözebilirsin. şimdi bu kullanarak dosyaya erişebilir arkasında sonra

<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> 

tezahür ve Kodunuza uygulamanıza bu eklemek yeni olarak kopyalamak, "İçerik" olarak inşa eylemi yapın, projenize .cer dosya ekleme referans help

İlgili konular