Pergunta

Eu não sei se eu tiver todas as informações necessárias para a frase esta questão bem, para ter comigo.

Eu tenho uma página web local (significado local, 192.168. *) Que está protegido com um certificado SSL auto-assinado. Estou tentando acessar essa página usando um objeto System.Net.HttpWebRequest, mas eu estou correndo em um problema estranho.

Se esta página é acessada no Internet Explorer com a opção "Use SSL 2.0" desligado, os retornos navegador de volta um erro, como se ele não pode estabelecer uma conexão. (Em outras palavras, um erro de conexão do navegador, em oposição a um erro enviou-servidor). Se a opção "Use SSL 2.0" é ligado, a página funciona bem e você receber o aviso padrão que esta é uma cert auto-assinado , quer continuar, etc. (Curiosamente, o Firefox, que supostamente não tem SSL 2.0 ligado, funciona muito bem.)

Agora o meu problema é que eu estou tentando acessar essa página com um objeto HttpWebRequest eo erro ele está retornando de volta se que a conexão foi inesperadamente fechada, assim como o erro IE joga quando "Use SSL 2.0" é desligada . (Eu já tenho código no lugar de ignorar o fato de que é uma cert auto-assinado, mas ele não está mesmo ficando tão longe.)

Como faço para obter o System.Net.HttpWebRequest para, assim, "Use SSL 2.0", quando se está a fazer o seu pedido?

Foi útil?

Solução

Eu acertei esta questão me quando se lida com SSL3, embora eu não tenho certeza se o mesmo conselho iria trabalhar para SSL2?

Para contornar o problema que defina o sinalizador SSL3 no protocolo de segurança da seguinte forma:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

Confira estes links para obter mais detalhes:

system.net.servicepointmanager.securityprotocol no MSDN

enumeração protocolo de segurança no MSDN

Eles podem apontar na direção certa se você tiver sorte:)

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