SslStream sobre TCP Server falhar ao certificado de cliente validar com RemoteCertificateNotAvailable

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

Pergunta

Esta questão é tudo sobre como resolver um erro SslPolicyError.RemoteCertificateNotAvailable.

Eu desenvolvi um servidor TCP com SslStream e um Cliente TCP para a outra extremidade.

Eu autenticar o servidor com:

sslStream.BeginAuthenticateAsServer 

Eu autenticar o cliente com:

sslStream.BeginAuthenticateAsClient

Eu estou carregando meu certificado de cliente de Trusted Publishers - Local Machine.

Ambos estão rodando na mesma máquina.

Eu tentei carregar o certificado de cliente no .cer e arquivos .pfx em vez da loja de editores confiáveis. Mas o cliente do servidor (remoto) certificado validador callback falhar ao declarar que SslPolicyErrors tem um erro de RemoteCertificateNotAvailable.

Foi útil?

Solução

O link não veio através de, mas há um problema que pode manchar com o statment:

"Eu carreguei meu certificado de cliente do Trusted Publishers"

Os certificados de clientes geralmente vivem em uma loja pessoal para uma conta de usuário. Mesmo com certificados de servidor (que provavelmente terá um OID Finalidade diferente associado com eles, embora - "A autenticação do cliente" vs "Servidor de Autenticação"). Seria estranho para você ter um cert com uma chave disponíveis na loja de editores confiáveis ??privada, eu acho.

Se você clicar duas vezes um certificado de cliente ou servidor em certmgr.msc, você deve ver uma "Este certificado tem uma chave privada" mensagem para o fundo.

Se você não fizer isso, você só tem metade de um par de chaves - criptografia e autenticação exigem a chave privada. O certificado de servidor precisa de uma chave privada no final servidor eo certificado de cliente precisa de uma chave privada no cliente final.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top