Comment faire pour utiliser le protocole HTTPS / SSL avec Kestrel en ASP.NET Core 2.x?
Je suis actuellement en utilisant ASP.NET Core 2.x et je l'ai utilisé pour être en mesure d'obtenir Kestrel pour utiliser HTTPS /SSL, simplement en le mettant dans le UseUrls()
méthode comme suit:
var host = new WebHostBuilder()
.UseUrls("http://localhost", "https://111.111.111.111")
.UseKestrel()
.Build();
Mais maintenant, je reçois l'exception:
System.InvalidOperationException:
HTTPS endpoints can only be configured using KestrelServerOptions.Listen().
Comment puis-je configurer Kestrel pour utiliser SSL dans ASP.NET Core 2.x?
Reportez-vous à ce post blogs.msdn.microsoft.com/webdev/2017/11/29/... et le code source github.com/aspnet/samples/tree/master/samples/aspnetcore/...
OriginalL'auteur Svek | 2017-10-07
Vous devez vous connecter pour publier un commentaire.
Les bases. En Utilisant Les Url Du Serveur De
Si vous souhaitez associer votre serveur pour utiliser les adresses IP attribuée au serveur/hébergeur web, alors vous pouvez faire ceci:
Remarque: Le format de chaîne de caractères utilisé dans le
UseUrls()
méthode est la suivante:http://{ip address}:{port number}
.- Si vous utilisez un
*
(astérisques) pour l'adresse IP, cela signifie que toutes les adresse IP disponible sur l'ordinateur hôte.- Le numéro de port n'est pas une exigence. Si vous le laissez vide, il sera par défaut sur le port 80.
Il y a une grande quantité de détails supplémentaires au sujet de la
UseUrls()
méthode par rapport à le responsable de Microsoft Docs ici.Configuration des ordinateurs d'extrémité. L'utilisation de HTTPS et la reliure d'un certificat SSL
HTTPS points de terminaison ne peut être configuré à l'aide de
KestrelServerOptions
.Voici un exemple d'utilisation de sockets TCP à l'aide de la
Listen
méthode:Remarque: si vous utilisez à la fois le
Listen
méthode etUseUrls
, leListen
les points de terminaison de remplacer leUseUrls
points de terminaison.Vous pouvez trouver plus d'informations sur la configuration des ordinateurs d'extrémité ici, à l'officiel de Microsoft Docs.
certificate.pfx
, par exemple, utiliser andrewlock.net/... comme un point de départ?C'est une très vaste question. Vous pourriez obtenir un certificat SSL en achetant un ou vous pouvez le signer aussi. Le processus dépend aussi de votre système d'exploitation, etc. Si vous utilisez windows, peut-être prendre un coup d'oeil à
certreq.exe
ou vous pouvez utiliser IIS.Kestrel pour ASP.NET Core 2 est suffisamment sécurisé pour un public d'extrémité. Kestrel pour ASP.NET Core 1 ne l'était pas.
Toutes les références de cette déclaration?
la tête de docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/..., et de basculer entre les versions 2.0 et 1.1 onglets.
OriginalL'auteur Svek
Vous n'avez pas besoin de mettre en œuvre https avec kestrel par lui-même. Si vous exécutez une application qui nécessite https, il est plus susceptible de faire face vers l'extérieur à l'internet. Cela signifie que vous devez exécuter kestrel derrière nginx ou Apache et l'un de ceux poignée de la demande https pour vous.
Oui, en interne est ok. Mais, l'OP parle de https. Donc, je suppose qu'il serait face vers l'extérieur. Aussi, juste parce que quelqu'un utilise kestrel sur un public de point de terminaison, ne signifie pas qu'il est bon de le faire. Dans mon expérience, je n'aurais jamais confiance kestrel suffisants pour faire face vers le public. Surtout quand Microsoft ne recommande pas d'eux-mêmes.
Downvoted. Beaucoup de raisons pour avoir besoin de https avec kestrel par lui-même. Kestrel est maintenant prise en charge-mais-pas-certified edge, par Damian Edwards.
lire la réponse complète avant en bas à droit de vote.
La question était: "Comment puis-je configurer Kestrel pour utiliser SSL dans ASP.NET Core 2.x?", la réponse "pourquoi n'utilisez-vous pas un reverse proxy" n'est pas de répondre à la question.
OriginalL'auteur Michael