2016-12-10 75 views
16

Làm thế nào để bạn bật SSL cho dự án trong Visual Studio 2017?Visual Studio 2017 Bật SSL

Trong VS15, tôi có thể chọn Dự án -> Thuộc tính -> Gỡ lỗi -> Bật SSL. Tùy chọn này không có sẵn trong VS2017. Nó di chuyển đến đâu?

Edit:

Tôi thậm chí đã cố gắng chỉnh sửa .\vs\config\applicationhost.config vô ích:

 <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:

Một tùy chọn khác tôi đã cố gắng, mà chỉ cảm thấy phiền phức, và đánh bại điểm của một IDE, là cấu hình Kestrel để sử dụng HTTPS. Điều này không lý tưởng vì tôi phải xuất bản sao chứng chỉ cho localhost từ IIS và IIS Express vẫn cố gắng tải trang web trên một cổng khác.

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

Đáng buồn thay, điều này không hoạt động khi chạy từ VS17. Lần đầu tiên tôi gặp lỗi 502,2 (tôi nghĩ), giờ đây tất cả những gì tôi nhận được là không thể kết nối lỗi trong Chrome. Tôi có thể chạy dotnet run từ PowerShell và nó hoạt động tốt.

Như một giải pháp, nó thực hiện thủ thuật. Nhưng nó không có vẻ gọn gàng.

+0

Dường như điều này đã thay đổi trong các bản cập nhật gần đây cho Visual Studio 2017 RC? Tôi thấy tùy chọn Enable SSL, và sử dụng nó làm việc tốt cho tôi. Tôi đã phải [thiết lập tài khoản của mình để tin tưởng chứng chỉ IIS] (https://blogs.msdn.microsoft.com/robert_mcmurray/2013/11/15/how-to-trust-the-iis-express-self-signed -chứng chỉ/). –

Trả lời

1

Chỉnh sửa .\vs\config\applicationhost.config thực sự hiệu quả với tôi.

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

Tuy nhiên, ứng dụng này sẽ tải ứng dụng lên trong trình duyệt bằng cách sử dụng cổng không https. Nếu bạn tự trình duyệt trình duyệt của bạn đến cổng 43107 nó sẽ hoạt động.

Sửa

này làm việc cho tôi một vài lần nhưng ngừng làm việc. Kiểm tra tiếp theo tiết lộ rằng bất cứ khi nào tôi sẽ bấm vào nút để bắt đầu gỡ lỗi trong VS 2017 RC nó sẽ loại bỏ các ràng buộc tôi tự thêm vào.

Tôi đã khắc phục điều đó bằng cách đặt tệp chỉ đọc bây giờ nó bắt đầu với hỗ trợ HTTPS một lần nữa.

+0

Vẫn còn một chút về cách giải quyết "hacky", nhưng tôi sẽ thử tạo tệp chỉ đọc để ngăn ghi đè tùy chọn cấu hình. Ít nhất tôi sẽ có thể chạy mọi thứ từ bên trong VS một lần nữa. –

+1

Nếu bạn muốn tránh giải pháp "hacky" sau đó: 1. \t Trên Solution Explorer, hãy mở các thuộc tính cho ứng dụng của bạn. 2. Chọn Gỡ lỗi. 3. Bật SSL. – Allan

+0

@Allan Bạn nên thêm câu trả lời đó làm câu trả lời để tôi có thể chấp nhận câu trả lời đó. Vào thời điểm này câu hỏi này được viết Microsoft đã không thực hiện tùy chọn đó, nhưng đi về phía trước nó có vẻ là lựa chọn tốt nhất. – rushinge

3

Đối với những người đang chạy asp.net lõi 1.x trong Visual Studio 2017 RC, bạn sẽ có thể thay đổi dòng "sslPort": 0 trong tệp launchSettings.json thành bất kỳ số cổng nào bạn muốn sử dụng cho SSL . Điều này thay đổi hiệu quả các ràng buộc trong tệp. \ Vs \ config \ applicationhost.config được đề cập trong các câu trả lời trước.

2

Đối với Visual Studio 2017:

  1. Trong Solution Explorer, kích chuột phải vào project>Thuộc tính
  2. Chọn gỡ lỗi Tab
  3. Kiểm tra Enable SSL enter image description here
+1

tùy chọn này không tồn tại trong dự án ASP.NET Core (1.1), trong cài đặt máy chủ web, tùy chọn duy nhất là hộp văn bản AppURL – Serge

+0

@Serge tồn tại trên ASP.NET Core 2.0 – 0x4f3759df

+0

Điều đó tạo ra một số cổng ngẫu nhiên trong phạm vi đó. – JakeJ

1

Trong Solution Explorer, nhấp chuột phải vào tên trang web của bạn và chọn "Properties Window", hoặc đơn giản là nhấn F4.Trong phần Web Server của nhà phát triển, thay đổi SSL được bật từ False thành True.

+0

không có phần nào trong dự án ASP.NET Core 1.1 – Serge

0

Một điểm quan trọng bạn có thể bị thiếu là bạn phải chạy Visual Studio với tư cách quản trị viên (biểu tượng vlick VS phải và chọn 'Chạy với tư cách quản trị viên' Tôi đã gặp rắc rối với vấn đề SSL này và sau khi chạy VS làm quản trị viên tôi đã làm cho nó làm việc

8

cổng bị khóa xuống trong IIS Express để nó không phải được chạy as Administrator ...

cổng hợp lệ là 44.300 -. 44399

Check-out Cộng đồng Dev bài viết https://developercommunity.visualstudio.com/content/problem/39430/changing-port-number-in-a-web-project-does-not-imm.html

Bạn có thể chỉnh sửa launchSettings.json, nhưng các cổng ssl phải nằm trong phạm vi này.

+1

Đây là câu trả lời đúng. Tôi đã chọn một cổng ngẫu nhiên không nằm trong phạm vi đó và nó không hoạt động. Nhận được một trong phạm vi đó - nó hoạt động! Cảm ơn đã giúp đỡ. –

+0

Đồng ý, nếu bạn đã thiết lập để sử dụng http đầu tiên, VS không thay đổi số cổng cho bạn. Thay đổi giá trị Url dự án để bao gồm một cổng trên 44300 làm việc cho tôi. -> https: // localhost: 44301 / –

1

này là dành cho một Asp.Net MVC .Net Framework Dự án

  1. Chọn của bạn dự án bằng cách nêu bật nó.
  2. Sau đó, nhấn F4 để mở ngăn Thuộc tính của nó.
  3. Tìm SSL Enabled mục trên danh sách và đặt giá trị là True, và sao chép URL SSL giá trị vào clipboard của bạn.
  4. Trong khi của bạn dự án được đánh dấu, nhấn Alt + Nhập để mở Properties thoại - dán copy URL SSL vào url dự án dưới Web đơn hộp đầu vào.
Các vấn đề liên quan