c# - google - Obteniendo el error 107(net:: ERR_SSL_PROTOCOL_ERROR): error de protocolo SSL
get net:: err_ssl_protocol_error (3)
Sé que hay muchas preguntas relacionadas con los mismos temas en stackoverflow, pero aquí tengo algunos problemas diferentes:
win7/Winxp
la installer class
del installer class
para reserve a port
y win7/Winxp
bind it with hash
en win7/Winxp
:
if (Environment.OSVersion.Version.Major > 5)
{
startInfo.Arguments = @"/c netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE";
netsh http add sslcert ipport=127.0.0.1:8083 certhash=df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 appid={00112233-4455-6677-8899-CCBBCCDDEEFF} clientcertnegotiation=enable;
}
else
{
startInfo.Arguments = @"/c httpcfg set urlacl /u https://127.0.0.1:8083/";
httpcfg set ssl -i 127.0.0.1:8083 -h df03c4b0b32f3302a3b70abe6b5dfd864d0986a5 -f 2
}
No hay nada malo con el código y setup project
. Todo funciona bien, excepto los siguientes puntos:
- cada vez que instalé el
exe
enwin7
, ejecuta el servicio webWCF
éxito. Siempre que estoy usando
WinXP(SP#)
en mi máquina local, se produce un error:Error 107 (net :: ERR_SSL_PROTOCOL_ERROR): error de protocolo SSL
Pero cuando estoy usando teamviewer para iniciar sesión en cualquier máquina virtual
WinXp
, se ejecuta correctamente.
Como puede ser posible, lo intenté varias veces pero obtuve el mismo resultado. ¿Se está ejecutando en Xp (ejecutándose en VM) pero no en una máquina XP real?
¿Escribí algo mal para enlazar y reservar el puerto? ¿El firewall juega algún papel aquí?
También lo httpcfg query ssl
con httpcfg query ssl
y el hash se enlazó correctamente con el puerto.
Cualquier ayuda será apreciable.
En mi opinión, este comando no funciona: netsh http add urlacl url=https://127.0.0.1:8083/ user=EVERYONE
Intenté averiguar el error con fiddler
y dice:
"Failed to secure existing conection for <ipaddress>. Authentication failed because the remote party has closed the transport stream."
Esto puede parecer estúpido, pero algunas aplicaciones pueden usar puertos SSL como Team Viewer o incluso Skype. ¡Intente cerrar estas aplicaciones en caso de que tenga algunas de ellas ejecutándose en su máquina!
Lo siento, es solo una conjetura :) pero espero que ayude ...
Haga el siguiente Setup berfoe llamando a su servicio WCF
ServicePointManager.ServerCertificateValidationCallback =
delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
Para obtener más detalles, consulte: Uso de un certificado autofirmado con .NET''s HttpWebRequest / Response
La configuración de la máquina local de XP es probablemente diferente de la de la virtual. Un escenario en el que puedo pensar es que un departamento de TI configuraría la máquina XP de una manera y luego usted mismo creará una máquina virtual, solo está usando la configuración predeterminada (que difiere). No estoy diciendo que ese sea tu escenario específicamente, solo un escenario . Otra es que la máquina está desactualizada / no actualizada, lo que no es tanto un problema de configuración como la existencia de errores.
En cualquier caso, diría que su instalación de XP determina incorrectamente que el certificado no es válido , una característica que la máquina virtual no comparte. Tu comentario sobre la configuración del cortafuegos también puede ser preciso: prueba con Google.
¡Buena suerte!