97 votes

ASP.NET Core 2.1 - Kestrel (Comment désactiver HTTPS)

Il semble donc qu'avec l'avènement de ASP.NET de Base 2.1, Kestrel maintenant crée automatiquement un point de terminaison HTTPS le long de côté l'un HTTP, et les modèles de projet par défaut l'installation de redirection à partir de HTTP vers HTTPS (ce qui est assez facile à défaire).

Cependant ma question est... comment puis-je désactiver HTTPS entièrement pour mon projet. J'ai lu dans les docs et joué avec une variété de paramètres de configuration pour HTTPS, mais rien que je ne semble, pour me permettre de l'éteindre et il suffit d'exécuter un HTTP projet.

Suis-je fou ou tout simplement manque quelque chose. Je m'attends à ce que cela soit super facile à faire.

78voto

Tairan Points 437

Dans le Startup.cs, retirez le middleware

65voto

Abhishek Kumar Points 484

Si vous utilisez Visual Studio 2017, vous pouvez faire ce qui suit :

  1. Rendez-vous sur les propriétés de votre projet. (Cliquer à droite et propriétés)
  2. Cliquez sur l'onglet Debug.
  3. Sous paramètres de serveur Web, désélectionnez Activer SSL.
  4. Enregistrer, construire et réessayer.

Cela permettra de mettre à jour les paramètres iisExpress dans le fichier launchSettings.json.

44voto

Xorcist Points 17

S'avère la bonne façon de réaliser ce que je voulais faire, c'est de configurer spécifiquement Kestrel avec .UseKestrel() et il suffit de spécifier une adresse unique, comme ceci:

  WebHost.CreateDefaultBuilder(args)
    .UseKestrel(options => {
      options.Listen(IPAddress.Loopback, 5080); //HTTP port
    })
    .UseStartup<Startup>();

affecte en rien la substitution de la configuration par défaut, et l'affichage de cet avertissement lorsque Kestel commence:

warn: Microsoft.AspNetCore.Server.Kestrel[0]
  Overriding address(es) 'https://localhost:5001, http://localhost:5000'. Binding to endpoints defined in UseKestrel() instead.

si une seconde adresse est spécifiée, il va supposer que l'adresse est assurée avec le haut-développeur cert, comme tel:

  WebHost.CreateDefaultBuilder(args)
    .UseKestrel(options => {
      options.Listen(IPAddress.Loopback, 5080); //HTTP port
      options.Listen(IPAddress.Loopback, 5443); //HTTPS port
    })
    .UseStartup<Startup>();

vous pouvez bien sûr spécifiquement sécurisé SSL adresse comme décrit ici:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.1&tabs=aspnetcore2x

ce qui est nécessaire pour la production des configurations.

41voto

joanlofe Points 954

Dans le fichier Properties/launchSettings.json de votre projet, en regard de la touche applicationUrl. Vous trouverez quelque chose comme:

...
"applicationUrl": "https://localhost:5001;http://localhost:5000",
...

Supprimer l' https d'extrémité et c'est fait.

Modifier

Comme le fait remarquer @Xorcist le fichier launchSettings.json n'est pas publié. Donc, la solution ci-dessus ne fonctionne que dans un environnement de développement. Pour désactiver le protocole https et, en général, de configurer les url que vous souhaitez écouter, à la fois en production et en développement, vous pouvez également effectuer l'une des opérations suivantes:

  • Utiliser --urls paramètres de dotnet run, auront le même effet que l' applicationUrl en launchSettings.json. Par exemple: dotnet run --urls=http://0.0.0.0:5000,https://0.0.0.0:5001. Encore une fois, de supprimer l'un que vous ne souhaitez pas utiliser.

  • Le même effet peut être obtenu avec l' ASPNETCORE_URLS environnement variable.

  • Comme mentionné dans la réponse de @Konstantin à cette question, en ASP Net de Base 2.1, vous pouvez également configurer Kestrel les points de terminaison appsettings.json (il semble que cela ne peut pas être fait dans la version 2.0).
  • Enfin, la même chose peut également être réalisé avec l' useUrls méthode d'extension WebHost.CreateDefaultBuilder(args).UseUrls("http://0.0.0.0:5000"). Je préfère l'autre solution parce que ceux code en dur vous êtes points de terminaison d'application, et ne peut pas être modifié sans avoir à recompiler l'application.

Toutes les options possibles sont expliquées en détail dans le Microsoft Docs sur cette.

17voto

BlackBrain Points 335

Dans le Program.cs, ajoutez UseUrls comme suit :

Et dans le Startup.cs supprimer / commenter ce qui suit:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X