2009-03-05 19 views
2

Bu soru, bir SslPolicyError.RemoteCertificateNotAvailable hatasını çözmektir.TCP sunucusundaki SslStream istemci sertifikasını RemoteCertificateNotAvailable ile doğrulamakta başarısız oluyor

SSLStream ile bir TCP Sunucusu ve diğer uç için bir TCP İstemcisi geliştirdim. Birlikte müşteri kimliğini

sslStream.BeginAuthenticateAsServer 

: Ben Trusted Publishers - Local Machine benim istemci sertifikasını yükleme am

sslStream.BeginAuthenticateAsClient 

Birlikte sunucu kimlik doğrulaması.

Her ikisi de aynı makinede çalışıyor.

İstemci sertifikasını, güvenilir yayıncı deposundan ziyade .cer ve .pfx dosyalarından yüklemeyi denedim. Ancak, sunucunun istemci (uzak) sertifika doğrulayıcı geri dönüşümü, SslPolicyErrors'un RemoteCertificateNotAvailable hatasına sahip olduğunu belirterek başarısız oluyor.

cevap

4

bağlantı yoluyla gelmedi, ama statment ile tespit edebilirsiniz bir problem var:

İstemci sertifikaları tipik bir kişisel depoda yaşayan "Ben Güvenilir yayımcılar müvekkilim sertifikası yüklü" Bir kullanıcı hesabı. Sunucu sertifikalarında olduğu gibi (muhtemelen "İstemci kimlik doğrulaması" ile "Sunucu Kimlik Doğrulaması" arasında) farklı bir Amaçlı Amaç OID'si vardır. Güvenilir Publishers mağazasında bulunan özel bir anahtarla bir sertifikanız olması garip olur.

CertMgr.msc'de bir istemci veya sunucu sertifikasını çift tıklatırsanız, aşağıya doğru bir "Bu sertifikanın özel anahtarı var" iletisini görmeniz gerekir.

Yapmazsanız, yalnızca yarım anahtar çiftiniz vardır - şifreleme ve kimlik doğrulama özel anahtarı gerektirir. Sunucu sertifikasının sunucu sonunda özel bir anahtara ihtiyacı vardır ve istemci sertifikasının istemci tarafında özel bir anahtara ihtiyacı vardır.

+0

Ayrıca sertifikayı "Kişisel" mağazadan yüklemeyi denedim. Sertifikamın özel anahtarı var. – cdpnet

+1

Certutil -verify -urlfetch, sertifikanın doğrulanıp doğrulanamayacağını doğrulamalıdır. Değilse, zar yok. Sunucu sertifikasının "amaçlanan amaç: sunucu kimlik doğrulaması" gerekmesi ve istemci sertifikasının bir istemciyi benzersiz olarak tanımlaması gerekiyorsa, muhtemelen "istemci kimlik doğrulaması" gerektirmesi gerekir. – TristanK

+0

Tristank. Sorunu aslında fark ettin. Sadece sunucu yetkisi olan bir sertifikaya sahiptim. İstemci yetkisini destekleyen sertifikaya ihtiyacım vardı. Yani, bir kere anladım, işe yaradı. – cdpnet