J'utilise actuellement ASP.NET Core 2.x et j'avais l'habitude de pouvoir amener Kestrel à utiliser HTTPS/SSL en le mettant simplement dans la méthode UseUrls()
comme ceci:
var Host = new WebHostBuilder()
.UseUrls("http://localhost", "https://111.111.111.111")
.UseKestrel()
.Build();
Mais maintenant, j'ai l'exception:
System.InvalidOperationException:
HTTPS endpoints can only be configured using KestrelServerOptions.Listen().
Comment configurer Kestrel pour utiliser SSL dans ASP.NET Core 2.x?
Si vous souhaitez associer votre serveur pour utiliser toutes les adresses IP attribuées au serveur/hôte Web, procédez comme suit:
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://localhost:5000", "http://*:80")
.UseStartup<Startup>()
.Build();
Remarque: Le format de chaîne utilisé dans la méthode UseUrls()
est: http://{ip address}:{port number}
.
- Si vous utilisez un *
(astérisque) pour l'adresse IP, cela signifie toutes les adresses IP disponibles sur l'hôte.
- Le numéro de port n'est pas obligatoire. Si vous le laissez vide, le port 80 sera utilisé par défaut.
La méthode UseUrls()
contient beaucoup de détails supplémentaires à partir de les documents officiels Microsoft Docs ici .
Cependant, SSL ne fonctionnera pas avec la méthode
UseUrls()
--- Donc, cela signifie que si vous essayez d'ajouter une URL commençant parhttps://
, le programme lève l'exception.System.InvalidOperationException: HTTPS endpoints can only be configured using KestrelServerOptions.Listen().
Les points de terminaison HTTPS ne peuvent être configurés qu'avec KestrelServerOptions
.
Voici un exemple d'utilisation de sockets TCP à l'aide de la méthode Listen
:
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5000); // http:localhost:5000
options.Listen(IPAddress.Any, 80); // http:*:80
options.Listen(IPAddress.Loopback, 443, listenOptions =>
{
listenOptions.UseHttps("certificate.pfx", "password");
});
})
.UseStartup<Startup>()
.Build();
Remarque: Si vous utilisez à la fois la méthode Listen
et UseUrls
, les noeuds finaux Listen
remplacent les noeuds finaux UseUrls
.
Vous pouvez trouver plus d'informations sur la configuration des points de terminaison ici sur le document officiel Microsoft Docs .
Si vous utilisez IIS, les liaisons d'URL pour IIS annulent toutes les liaisons que vous définissez en appelant
Listen
ouUseUrls
. Pour plus d'informations, voir Introduction au module ASP.NET Core .