netstat dit 443 est ouvert, mais je ne peut pas se connecter avec telnet .. pourquoi?
J'ai construit une auto hébergé wcf serveur, à l'aide wsHttpBinding
. Je suis sous Win server 2003 R2 SP2.
Si je le configure pour écouter sur http://localhost:443/MyService
, tout fonctionne bien. Je peux me connecter à http://localhost:443/MyService
avec Internet Explorer, et j'obtiens la norme "Bad Request" message
Maintenant, si j'essaie de passer en HTTPS, je suis témoin d'un étrange phénomène.
Voici ce que j'ai fait :
- J'ai changé mon wcf fichier de config de
http://localhost
àhttps://localhost
et deSecurity=None
àSecurity=Transport
(comme expliqué dans de nombreux wcf tutoriels) - J'ai inscrit mon numéro de port HTTP comme ceci :
httpcfg delete ssl -i 0.0.0.0:443 httpcfg set ssl -i 0.0.0.0:443 -h ea2e450ef9d4...
Noter que le certificat que j'ai utilisé est un "vrai" certificat " (c'est à dire émis par une autorité de certification de confiance, à savoir Comodo). Le serveur répond au ping sur le NS mentionnées dans le certificat.
Maintenant, le délai d'attente :
Microsoft Telnet> open localhost 443
Voici la sortie de netstat
(Le Pid '4' est le "Système"):
netstat -nao
Proto Local Adress Remote Adress State Pid
TCP 0.0.0.0:443 0.0.0.0:0 Listening 4
Et voici une capture d'écran de TCPView capturées lorsque j'ai lancé la commande ouvrir dans telnet :
le texte d'alt http://img26.imageshack.us/img26/3376/tcpview2si6.jpg
Je suis un peu perplexe. Pour moi, si netstat
dit que le serveur est à l'écoute sur 443, la connexion telnet à 443 ne devrait pas le délai d'attente, et je devrais avoir au moins une invite de commandes vide, en espérant me taper quelques chiffré trucs 🙂
Jusqu'à présent, j'ai essayé de :
- Refaire toutes les étapes à partir de zéro en suivant exactement la MSDN tutoriel
- De port utilisé 10443 au lieu de 443
- Désactiver le pare-feu
- Utiliser un certificat auto-signé
Je ne sais pas quoi essayer la prochaine .. des idées?
OriginalL'auteur Brann | 2009-02-12
Vous devez vous connecter pour publier un commentaire.
Le client telnet ne va pas savoir envoyer un construit correctement demande d'ouverture d'une https poignée de main, donc j'imagine que le serveur sécurisé ssl est juste en attente pour plus de données.
Le client telnet est certainement ne va pas savoir quoi faire avec la réponse d'un serveur sécurisé ssl (c'est certainement pas à vous demander des données à envoyer). La Communication ne peut se faire que lorsque le https poignée de main est terminée.
Vous devez utiliser un client qui sait comment faire une poignée de main. Openssl binaire peut le faire hors de la boîte.
OriginalL'auteur Crescent Fresh
Telnet ne peut pas être utilisé pour communiquer avec encrited webs.
Caisse microsfot note. Il dit "REMARQUE: Cet exemple suppose que le serveur Web est configuré pour utiliser le port HTTP par défaut (port TCP 80). Si le serveur Web est à l'écoute sur un port différent, changez le numéro de port dans la première ligne de l'exemple. En outre, cet exemple ne fonctionne pas correctement sur une HTTPS/SSL connexion (TCP 443 par défaut), parce que le client telnet ne peut pas négocier le nécessaire de chiffrement des commandes pour établir la session SSL. Même si une première connexion est possible sur le HTTPS/SSL port, aucune donnée n'est renvoyée lorsque vous émettez une requête GET."
Mise à jour: Checkout cette autre remarque COMMENT faire POUR Déterminer Si la Connectivité SSL ne fonctionne Pas sur le Serveur Web ou sur un Périphérique Intermédiaire
J'ai juste essayé sur un serveur https. Vous avez raison, il ne fonctionne pas.
btw, le lien que tu viens de poster n'aide pas : je ne suis pas à l'aide de IIS (mon service est hébergé soi-même), et ce howto semble se concentrer sur les problèmes de connectivité (je n'en ai point, puisque je suis directement sur le serveur)
OriginalL'auteur FerranB
Comme FerrariB dit, telnet ne fonctionne pas les négociations nécessaires à l'ouverture d'une connexion SSL. Telnet ne sait rien sur les certificats, et de chiffrement. Ainsi, vous êtes assuré de ne pas être en mesure de communiquer avec le port HTTPS 443 via telnet. Vous devrez trouver un autre moyen de faire tout ce que vous essayez de faire.
Découvrez la page de Wikipedia sur TLS par exemple, où il est dit directement:
C'est précisément ce que vous voyez en essayant d'utiliser telnet pour communiquer avec un point de terminaison SSL.
OriginalL'auteur Eddie
dans l'invite de commande:
netstat -nao |find "443"
les dernières colonnes montrent un certain nombre:
pic de pas de.1
Maintenant ouvrez le gestionnaire des tâches.résultat de la recherche nombre dans la 1ère section, dans la colonne pid (si pid n'est pas activée, sélectionnez à partir de l'onglet de la vue) nom du programme afficher le programme qui utilise le port.
désactiver le programme qui utilise le port /dans mon cas, j'ai arrêté de services
OriginalL'auteur NadiaNaji