Modifications les plus récentes en gras
Je suis en utilisant le .net HttpListener
classe, mais je suis de ne pas être en cours d'exécution sur IIS et ne suis pas à l'aide de ASP.net. Ce site web décrit ce code à l'utilisation réelle de mettre en œuvre le protocole SSL avec asp.net et ce site explique comment configurer les certificats (bien que je ne suis pas sûr si elle ne fonctionne que pour IIS ou pas).
Quand j'ai de la documentation de classe, il décrit les divers types d'authentification (basic, digest, Windows, etc.) - aucun d'entre eux font référence à SSL. Il ne dit que si le protocole HTTPS est utilisé, vous devez disposer d'un certificat de serveur. Est-ce que ça va être une une ligne de la propriété et de l' HttpListener
chiffres le reste?
En bref, j'ai besoin de savoir comment mettre en place les certificats et comment modifier le code pour mettre en œuvre le protocole SSL.
Bien qu'il ne se produit pas lorsque j'essaye d'accéder à HTTPS, j'ai remarqué une erreur dans mon journal d'Événements du Système - la source est "Schannel" et le contenu du message est le suivant:
Une erreur irrécupérable s'est produite lors de la tentative pour accéder aux informations d'identification du serveur SSL la clé privée. Le code d'erreur retourné depuis le module cryptographique est 0x80090016.
Edit:
Les mesures prises jusqu'à présent
- Créé un HTTPListener en C# qui fonctionne pour les connexions HTTP (par ex. "http://localhost:8089/foldername/"
- Créé un certificat à l'aide de makecert.exe
- Ajouté le certificat de confiance à l'aide de certmgr.exe
- Utilisé Httpcfg.exe pour écouter les connexions SSL sur un port d'essai (p. 8090)
- Ajoutée le port 8080 de la HTTPListener par l'auditeur.Les préfixes.Ajouter(https://localhost:8090/foldername/");
- testé un client HTTP de connexion, par exemple (http://localhost:8089/foldername/") dans un navigateur et de recevoir de retour correctes
- testé HTTPS, client de connexion, par exemple (http://localhost:8090/foldername/") dans un navigateur et de recevoir "Transfert de Données Interrompue" (dans Firefox)
- débogage dans visual studio montre que le rappel de l'écouteur qui reçoit la demande n'est jamais atteint lorsque la connexion HTTPS commence - je ne vois pas toute la place que je pourrais définir un point d'arrêt à attraper quoi que ce soit d'autre.
- netstat montre que l'écoute ports sont ouverts pour HTTPS et HTTP. le port HTTPS ne va TIME_WAIT après une tentative de connexion.
- Fiddler et HTTPAnalyzer ne pas accrocher le trafic, je suppose qu'il ne va pas assez loin dans le processus à apparaître dans ces HTTP outils d'analyse
Questions
- Quel pourrait être le problème?
- Est-il un morceau de .Net code, je suis absent (ce qui signifie que j'ai à faire plus en C# d'autres que de simplement ajouter un préfixe à l'auditeur qui pointe vers HTTPS, qui est ce que j'ai fait)
- Manqué une étape de configuration quelque part?
- Quoi d'autre pourrais-je faire pour analyser le problème?
- Est le message d'erreur dans le journal des Événements Système un signe de problème? Si oui, comment serait-il fixe?