2011-09-15 11 views
5

Wdrażam serwer SSL w języku C#, używając standardowego protokołu SSLStream.Jak zapewnić łańcuch certyfikatów w usłudze AuthenticateAsServer SSLStream()?

Wszystko jest w porządku do tej pory, ale - AuthenticateAsServer akceptuje tylko pojedynczy certyfikat jako parametr, a ja muszę podać kompletny łańcuch (3 z nich).

Zbudowałem strukturę PKCS12 ze wszystkimi certyfikatami (za pomocą Mono.Security), a następnie zadzwonię pod numer new X509Certificate2(pkcs12.GetBytes()), ale mimo to klientowi przedstawiono tylko jedną.

Pytanie brzmi: jak to zrobić?

Dzięki!

PS: Potrzebuję przenośnego rozwiązania, które będzie działać zarówno w Mono, jak i .NET w systemie Windows.

Odpowiedz

0

Twoja konfiguracja jest poprawna. Serwer WWW używa tylko jednego certyfikatu z SslStream (lub cokolwiek innego).

W certyfikacie może brakować niektórych informacji: Rozszerzenie twojego certyfikatu serwera o numer Authority Information Access wskazuje identyfikator URI, w którym zostanie pobrany certyfikat pośredni.

Czy brakuje tej informacji?

+0

Właściwie SslStream może wysyłać łańcuchy certyfikatów (musi to być - tak mówi dokumentacja i można to zrobić w Microsoft.Net). Po drugie, istnieje błąd w Mono, który temu zapobiega (podobno). Po trzecie, nie wszystkie rozszerzenia certyfikatów są obsługiwane przez wszystkich klientów SSL, niestety ... – aldem

Powiązane problemy