Comment activez-vous SSL pour un projet dans Visual Studio 2017?
Dans VS15, je pouvais sélectionner Projet -> Propriétés -> Débogage -> Activer SSL. Cette option n'est pas disponible dans VS2017. Où a-t-il déménagé?
Edit:
J'ai même essayé de modifier .\vs\config\applicationhost.config
en vain:
<listenerAdapters>
<add name="http" />
<add name="https" />
</listenerAdapters>
<sites>
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
</bindings>
</site>
<site name="Filters" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\Users\Ashley\documents\visual studio 2017\Projects\Filters\src\Filters" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51107:localhost" />
<binding protocol="https" bindingInformation="*:43107:localhost" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
<traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="Clr4IntegratedAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
<webLimits />
Edit:
Une autre option que j’ai essayée, et qui me semble maladroite, et qui défait en quelque sorte l’idée d’un IDE, consiste à configurer Kestrel pour qu’il utilise HTTPS. Ce n'est pas idéal car j'ai dû exporter une copie d'un certificat pour localhost à partir d'IIS et IIS Express essaie toujours de charger le site sur un autre port.
public class Program
{
public static void Main(string[] args)
{
var Host = new WebHostBuilder()
.UseKestrel(options =>
options.UseHttps(new X509Certificate2("path/to/cert.pfx", "password")))
.UseContentRoot(Directory.GetCurrentDirectory())
.UseUrls("http://localhost:5100", "https://localhost:4300")
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
Host.Run();
}
}
Malheureusement, cela ne fonctionne pas lorsqu'il est exécuté à partir de VS17. La première fois que j'ai eu une erreur 502.2 (je pense), maintenant, tout ce que je reçois est une erreur de connexion impossible dans Chrome. Je peux courir dotnet run
de PowerShell et cela fonctionne bien.
En guise de solution de contournement, cela fait l'affaire. Mais cela ne semble pas soigné.
Les ports sont verrouillés dans IIS Express afin qu'il ne soit pas nécessaire de l'exécuter en tant qu'administrateur ...
Les ports valides sont 44300 - 44399
Consultez l'article sur la communauté de développement https://developercommunity.visualstudio.com/content/problem/39430/changing-number-port-in-a-web-project-does-not-imm.html
Vous pouvez éditer launchSettings.json, mais les ports ssl doivent se situer dans cette plage.
Il s’agit d’un projet Asp .Net MVC .Net Framework
Dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris sur le nom de votre site Web et sélectionnez "Fenêtre Propriétés" ou appuyez simplement sur F4. Sous la section Developer Web Server, remplacez SSL activé par False par True.
Pour ceux qui exécutent asp.net core 1.x dans Visual Studio 2017 RC, vous devriez pouvoir modifier la ligne "sslPort": 0 du fichier launchSettings.json pour le numéro de port que vous souhaitez utiliser pour SSL. Cela modifie efficacement les liaisons dans le fichier.\Vs\config\applicationhost.config mentionné dans les réponses précédentes.
Ceci est pour un Asp.Net Core 2.0:
Properties
(oui, c'est aussi un objet, pas seulement un dossier)Debug
du côté gaucheEnable SSL
S'il est déjà activé, ouvrez launchSettings.json
_ (déplie Properties
) et définit "sslPort"
à 0
, refais ensuite les étapes.
VS2017 devrait maintenant vous demander si vous souhaitez ajouter un certificat SSL (quelque chose que cela ne fait pas si vous avez changé launchSettings.json
sur votre propre compte) et il va définir un port pour vous.
Editer le .\vs\config\applicationhost.config
a réellement travaillé pour moi.
<site name="Filters" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\Users\Ashley\documents\visual studio 2017\Projects\Filters\src\Filters" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:51107:localhost" />
**<binding protocol="https" bindingInformation="*:43107:localhost" />**
</bindings>
</site>
Il charge toutefois l'application dans le navigateur en utilisant le port non-https par défaut. Si vous pointez manuellement votre navigateur sur le port 43107, cela devrait fonctionner.
Éditer
Cela a fonctionné pour moi plusieurs fois mais a cessé de fonctionner. Des tests ultérieurs ont révélé que chaque fois que je cliquais sur le bouton pour démarrer le débogage dans VS 2017 RC, la liaison que j'avais ajoutée manuellement était supprimée.
J'ai corrigé cela en rendant le fichier en lecture seule maintenant, il recommençait avec le support HTTPS.
J'ai malheureusement eu le même problème, je ne pouvais pas voir la case à cocher "activer SSL" dans l'onglet Débogage des propriétés du projet ... Enfin trouvé! -> Définissez le lancement sur "IIS Express", vous pourrez alors le sélectionner ;-)
Un point important qui vous manque peut-être est que vous devez exécuter Visual Studio en tant qu’administrateur (icône de droite de vlick VS et sélectionnez "Exécuter en tant qu’administrateur". Je me débattais avec ce problème SSL et, après avoir exécuté VS en tant qu’administrateur, je l’ai fait fonctionner.