Mam aplikację Windows Store (Metro App), któraChcę połączyć usługę internetową zbudowaną przez HTTPS. Używam certyfikatu samopodpisanego do mojej usługi internetowej. Ale kiedy próbowałem połączyć go z mojej aplikacji przez System.Net.HttpClient.PostAsync otrzymałem wyjątek powiedział
"Podstawowe połączenie zostało zamknięte: nie można ustanowić relacji zaufania dla bezpiecznego kanału SSL / TLS."
Wewnętrzny wyjątek powiedział "Zdalny certyfikat jest nieprawidłowy zgodnie z procedurą sprawdzania poprawności."
Wiem, że to dlatego, że używam samopodpisanego certyfikatu. Zapamiętałem go w .NET, z którego mogę korzystać System.Net.ServicePointManager.ServerCertificateValidationCallback
aby moja aplikacja mogła przejść weryfikację, jeśli odcisk kciuka jest mój.
Ale nie mogę znaleźć odpowiedniej klasy / metody w środowisku wykonawczym Windows Store. Jak mogę to zrobić?
Odpowiedzi:
0 dla odpowiedzi № 1Po pierwsze, najlepiej byłoby używać Windows.Web.HttpClient. Za pomocą tego interfejsu API możesz użyć httpClient.HttpBaseProtocolFilter.IgnorableServerCertificateErrors
aby ustawić błędy certyfikatu, które akceptujesz, na przykład możesz zignorować błąd Niezaufany, ale powinieneś ręcznie sprawdzić odcisk kciuka przed wysłaniem jakichkolwiek danych.