2016-07-16 3 views
5

Ich benutze https://github.com/ebekker/ACMESharp für meine SSL auf meinem @ Home-Web-Server (es ist kostenlos!: O). Es war ziemlich manuell, aber auf dem Wiki bemerkte es ein anderes Projekt unter https://github.com/Lone-Coder/letsencrypt-win-simple, das eine GUI für die Automatisierung der Beantragung, des Downloads und der Installation Ihres SSL-Zertifikats auf Ihrem Web-Server war.Statische Dateien außerhalb des wwwroot für .netcore app

Die Methode, die die GUI verwendet, um die Domäne zu validieren, ist Ihre, wird durch eine zufällig benannte Datei mit einer zufälligen Zeichenfolge innerhalb [webroot]/.well-known/[randomFile] w/o einer Erweiterung erstellt. Mit der .dotnetcore-Anwendung, die auf diesem [Webroot] ausgeführt wird, kann ich die Datei nicht bereitstellen, selbst wenn ich die Anweisungen zum Ändern von "Handler Mappings" unter IIS befolge.

Es scheint, als ob ich Dateien durch direkt zu ihnen unter [webRoot]/wwwroot/[whatever] navigieren kann - also warum kann ich nicht in [webroot]/.well-known/[randomFile]?

Wer weiß einen Weg um dies zu wissen? Ich kann die .netcore-App löschen und dann die SSL-Zertifikat-Installation ausführen, aber diese Installation muss alle 2-3 Monate durchgeführt werden, und da es manuell ist, würde ich lieber herausfinden, wie man es richtig macht.

Antwort

3

fand ich die Informationen, die ich hier gebraucht: https://docs.asp.net/en/latest/fundamentals/static-files.html

Grundsätzlich in meinem Statup.cs ich, dies zu ändern benötigt:

 // 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?}"); 
     }); 

dazu:

 // 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 - Hinweis dass dieses Verzeichnis ".well-known" nur auf dem Web-Server erstellt wurde, als ich anfing, mich wieder lokal zu entwickeln, bekam ich Fehler, weil das ".bekannte" Verzeichnis existiert nicht. So, jetzt habe ich nur ein leeres Verzeichnis in meinem Projekt, aber zumindest meine SSL-Erneuerung ist automatisiert! : D

Verwandte Themen