فشل SslStream على ملقم TCP للتحقق من صحة شهادة العميل مع RemoteCertificateNotAvailable
-
03-07-2019 - |
سؤال
وهذا السؤال هو كل شيء عن حل الخطأ SslPolicyError.RemoteCertificateNotAvailable
.
ولقد وضعت خادم TCP مع SSLStream وعميل TCP عن الطرف الآخر.
وأنا مصادقة الخادم مع:
sslStream.BeginAuthenticateAsServer
وأنا مصادقة العميل مع:
sslStream.BeginAuthenticateAsClient
وأنا تحميل شهادة موكلي من Trusted Publishers - Local Machine
.
وكلاهما يعمل على نفس الجهاز.
وحاولت تحميل شهادة العميل من .CER وملفات .PFX بدلا من مخزن الناشرين الموثوقين. ولكن العميل الخادم فشل (عن بعد) شهادة مدقق الاستدعاء من خلال إيجاد ان SslPolicyErrors
تمت خطأ RemoteCertificateNotAvailable
.
المحلول
والارتباط لم يأت من خلال، ولكن هناك مشكلة أستطيع أن بقعة مع قرأه:
و"أنا حملت شهادة موكلي من ناشرون"
وشهادات العميل يعيش عادة في المخزن الشخصي لحساب المستخدم. الشيء نفسه مع شهادات مركز الخدمة (أنها من المحتمل أن يكون مختلفا OID الغرض المقصود المرتبطة بها، على الرغم - "مصادقة العميل" مقابل "مصادقة خادم"). انها تريد ان تكون غريبا أن يكون لديك سيرت مع مفتاح خاص المتاحة في متجر ناشرون، على ما أعتقد.
إذا كنت انقر نقرا مزدوجا فوق شهادة العميل أو الخادم في CertMgr.msc، يجب أن تشاهد "هذه الشهادة لديها خاصة مفتاح" رسالة نحو القاع.
إذا لم تقم بذلك، لديك نصف زوج مفاتيح فقط - التشفير والتوثيق تتطلب المفتاح الخاص. سيرت الخادم يحتاج إلى مفتاح خاص في نهاية الخدمة، وسيرت العميل يحتاج إلى مفتاح خاص في نهاية العميل.