SslStream en el servidor TCP no puede validar el certificado del cliente con RemoteCertificateNotAvailable

StackOverflow https://stackoverflow.com/questions/617109

Pregunta

Esta pregunta tiene que ver con resolver un error SslPolicyError.RemoteCertificateNotAvailable .

He desarrollado un servidor TCP con SSLStream y un cliente TCP para el otro extremo.

Yo autentico el servidor con:

sslStream.BeginAuthenticateAsServer 

Yo autentico al cliente con:

sslStream.BeginAuthenticateAsClient

Estoy cargando mi certificado de cliente de Trusted Publishers - Local Machine .

Ambos se ejecutan en la misma máquina.

Intenté cargar el certificado de cliente de los archivos .cer y .pfx en lugar del almacén de editores de confianza. Pero la devolución de llamada del validador del certificado del cliente (remoto) del servidor falla al encontrar que SslPolicyErrors tiene un error RemoteCertificateNotAvailable .

¿Fue útil?

Solución

El enlace no llegó, pero hay un problema que puedo detectar con la declaración:

" Cargué mi certificado de cliente de Trusted Publishers "

Los certificados de clientes generalmente viven en un almacén personal para una cuenta de usuario. Lo mismo con los certificados de servidor (aunque probablemente tendrán un OID de propósito específico diferente asociado con ellos - " Autenticación del cliente " vs " Autenticación del servidor "). Sería extraño que usted tenga un certificado con una clave privada disponible en el almacén de editores de confianza, creo.

Si hace doble clic en un certificado de cliente o servidor en CertMgr.msc, debería ver un " Este certificado tiene una clave privada " mensaje hacia la parte inferior.

Si no lo hace, solo tiene la mitad de un par de claves: el cifrado y la autenticación requieren la clave privada. El certificado del servidor necesita una clave privada en el extremo del servidor, y el certificado del cliente necesita una clave privada en el extremo del cliente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top