2016-07-16 26 views
5

Tôi đang sử dụng https://github.com/ebekker/ACMESharp cho SSL của mình tại @home web-server (miễn phí!: O). Nó khá thủ công, nhưng chú ý trên wiki nó đề cập đến một dự án khác tại https://github.com/Lone-Coder/letsencrypt-win-simple là một GUI cho việc tự động hóa việc áp dụng, tải xuống và cài đặt chứng chỉ SSL của bạn cho máy chủ web của bạn.Tệp tĩnh bên ngoài wwwroot cho ứng dụng .netcore

Phương thức GUI sử dụng để xác thực tên miền là của bạn, bằng cách tạo một tệp được đặt tên ngẫu nhiên với một chuỗi văn bản ngẫu nhiên trong vòng [webroot]/.well-known/[randomFile] phần mở rộng. Với ứng dụng .dotnetcore chạy trên [webroot] này, tôi không thể phục vụ tệp, ngay cả sau khi làm theo hướng dẫn để thay đổi "Handler Mappings" trong IIS.

Dường như tôi có thể phân phát tệp bằng cách điều hướng trực tiếp đến chúng tại [webRoot]/wwwroot/[whatever] - vậy tại sao tôi không thể ở [webroot]/.well-known/[randomFile]?

Bất kỳ ai biết cách này? Tôi có thể xóa ứng dụng .netcore, sau đó chạy cài đặt SSL cert, nhưng cài đặt này cần phải xảy ra 2-3 tháng một lần và vì đó là hướng dẫn tôi muốn tìm ra cách thực hiện đúng cách.

Trả lời

3

tôi tìm thấy những thông tin tôi cần ở đây: https://docs.asp.net/en/latest/fundamentals/static-files.html

Về cơ bản trong Statup.cs của tôi, tôi cần phải thay đổi này:

 // allows for the direct browsing of files within the wwwroot folder 
     app.UseStaticFiles(); 

     // MVC routes 
     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 

này:

 // allows for the direct browsing of files within the wwwroot folder 
     app.UseStaticFiles(); 

     // Allow static files within the .well-known directory to allow for automatic SSL renewal 
     app.UseStaticFiles(new StaticFileOptions() 
     { 
      ServeUnknownFileTypes = true, // this was needed as IIS would not serve extensionless URLs from the directory without it 
      FileProvider = new PhysicalFileProvider(
        Path.Combine(Directory.GetCurrentDirectory(), @".well-known")), 
      RequestPath = new PathString("/.well-known") 
     }); 

     // MVC routes 
     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 

EDIT - Note rằng thư mục này ".well-known" chỉ được tạo trên máy chủ web, khi tôi bắt đầu phát triển lại cục bộ, tôi đã gặp lỗi vì "được biết đến". thư mục không tồn tại. Vì vậy, bây giờ tôi chỉ có một thư mục trống trong dự án của tôi, nhưng ít nhất là gia hạn SSL của tôi là tự động! : D

Các vấn đề liên quan