web-dev-qa-db-fra.com

Visual Studio 2017 Activer SSL

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é.

44
Ashley Bye

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.

48
Mike Kushner

Il s’agit d’un projet Asp .Net MVC .Net Framework

  1. Sélectionnez votre Projet en le mettant en surbrillance.
  2. Puis frappe F4 pour ouvrir son volet Propriétés.
  3. Recherchez l'élément SSL activé dans la liste et définissez sa valeur sur True, puis copiez la valeur URL SSL dans votre presse-papiers.
  4. Alors que votre Projet est mis en surbrillance, appuyez sur Alt + Enter pour ouvrir la boîte de dialogue Propriétés - collez le URL SSL copié dans l'URL du projet sous le champ Menu Web.
44
user9410863

Pour Visual Studio 2017:

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet> Propriétés .
  2. Sélectionnez l'onglet Debug
  3. Vérifier Activer SSL enter image description here
11
RickAndMSFT

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.

5
user44129

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.

4
MaxT

Ceci est pour un Asp.Net Core 2.0:

  1. Ouvrez votre Explorateur de solutions dans VS2017.
  2. Doubleclick Properties (oui, c'est aussi un objet, pas seulement un dossier)
  3. Ouvrez Debug du côté gauche
  4. Faites défiler et sélectionnez Enable 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.

4
DavidHulsman

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.

1
rushinge

Property Settings

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 ;-)

1
StephanieVL

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.

0
Tiago Chilanti