2016-04-18 9 views
5

Ich versuche, die Azure Lassen Sie uns encrypt Website Stecker in der Arbeit für einen meiner Azure-Websites nach den Anweisungen auf bekommen:Encrypt Fehler Azure Let

https://gooroo.io/GoorooTHINK/Article/16420/Lets-Encrypt-Azure-Web-Apps-the-Free-and-Easy-Way/20047#.VxUIbKgrKUl

aber ich bin immer ein Berechtigungsfehler, wenn Ich renne es. Ich habe keine Ahnung, wo ich anfangen sollte, zu versuchen und zu lösen, und jede Hilfe wäre mehr als willkommen.

Der Fehler ist wie folgt:

Microsoft.Rest.Azure.CloudException: Der Client '{id}' mit dem Objekt-ID '{gleiche ID hier ??}' hat keine Berechtigung Aktion ausführen 'Microsoft.Web/sites/lesen' über Umfang '/ Zeichnungen/{Abonnement-ID} /resourceGroups/Default-Web-NorthEurope/providers/Microsoft.Web/sites/ {Sitename}'. bei Microsoft.Azure.Management.WebSites.SitesOperations.d__29.MoveNext()

aktualisiert

Es war ein Problem mit den Grundsätzen für den Zugang zum Web-App.

entschied ich mich durch troy Jagden folgen Durchlauf hier: https://www.troyhunt.com/everything-you-need-to-know-about-loading-a-free-lets-encrypt-certificate-into-an-azure-website/

was ziemlich gut ist - er das alte azur Portal verwendet das Active Directory einzurichten, die ich ein bisschen mehr nützlich, da ich was sehen tatsächlich gefunden konnte ging weiter. bis zur tatsächlichen Zertifikatsanforderung

Auf jeden Fall habe ich die ganzen Weg durch den Prozess richtig verstanden habe und jetzt bin immer ein I 403 Server Fehler zurückgegeben:

The remote server returned an error: (403) Forbidden. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Net.WebException: The remote server returned an error: (403) Forbidden. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 


[WebException: The remote server returned an error: (403) Forbidden.] 
    System.Net.HttpWebRequest.GetResponse() +1390 
    ACMESharp.AcmeClient.RequestHttpPost(Uri uri, Object message) +642 

[AcmeWebException: Unexpected error] 
    ACMESharp.AcmeClient.AuthorizeIdentifier(String dnsIdentifier) +435 
    LetsEncrypt.SiteExtension.Core.CertificateManager.Authorize(Target target) in c:\Projects\LetsEncrypt-SiteExtension\LetsEncrypt-SiteExtension\LetsEncrypt.SiteExtension.Core\CertificateManager.cs:518 
    LetsEncrypt.SiteExtension.Core.CertificateManager.Auto(Target binding) in c:\Projects\LetsEncrypt-SiteExtension\LetsEncrypt-SiteExtension\LetsEncrypt.SiteExtension.Core\CertificateManager.cs:441 
    LetsEncrypt.SiteExtension.Core.CertificateManager.RequestAndInstallInternal(Target target) in c:\Projects\LetsEncrypt-SiteExtension\LetsEncrypt-SiteExtension\LetsEncrypt.SiteExtension.Core\CertificateManager.cs:244 
    LetsEncrypt.SiteExtension.Controllers.HomeController.Install(RequestAndInstallModel model) +604 
    lambda_method(Closure , ControllerBase , Object[]) +104 
    System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +169 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22 
    System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 
    System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50 
    System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +225 
    System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 
    System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26 
    System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36 
    System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26 
    System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9644037 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 
+0

Ich konnte dies nicht lösen. Hast du es herausgefunden? –

+1

Leider nicht - ich hatte alle möglichen Probleme mit Azure, da ich das Entwickler-Benefit-Programmabonnement und ein weiteres Abonnement nebeneinander hatte. Ich kam zu dem Schluss, dass ich bereits mehr ausgegeben hatte als die Kosten für den Kauf eines Zertifikats in der Zeit, um es zu sortieren und war nicht daran interessiert, all dies jedes Mal, wenn ich eine neue Website hatte https (was so ziemlich alles, was Sie jetzt in Google rangiert bekommen wollen) Wie Troy in seinem Beitrag erwähnt, muss der Prozess große Zeit automatisieren. –

+0

"Es war ein Problem mit den Prinzipien Zugang zur Web-App." - Können Sie das klären? Das könnte die Antwort auf die ursprüngliche Frage sein, die viele Leute hier suchen werden (einschließlich mir) – stuartdotnet

Antwort

0

es ist das Problem mit dem Zugang. Bitte überprüfen Sie 5. Registrieren Sie einen Service Hauptteil des Artikels, den Sie erwähnt haben. Haben Sie die gleiche ApplicationId, wenn dieser Teil mit der ApplicationId auf der LetsEncrypt-Seite abgeschlossen wurde? Das gleiche Geheimnis? Überprüfen Sie es, weil es scheint, dass mit diesem Schritt etwas nicht stimmt.

P.S. Ich habe gerade diese Anleitung ohne den von Ihnen erwähnten Fehler überprüft.

0

Ich stieß auf das gleiche Problem.

ich es nicht unter Angabe der benutzerdefinierten Domain gelöst (zB lybecker.com) in der Encrypt-Website Erweiterung Konfiguration des Azure lassen, aber mit voller lybecker.onmicrosoft.com

+0

Ich sehe nicht, wo Sie die benutzerdefinierte Domäne in der Azure Lets Encrypt-Site-Erweiterung eingeben. Wo ist es? –

4

Für mich ist dieses Problem kam, als mein ResourceGroup war nicht das gleiche wie meine ServicePlanResourceGroup.

Wenn diese nicht identisch sind, müssen Sie die App-Registrierung, die Sie erstellt haben (Die clientId, für die Sie den geheimen Schlüssel erstellt haben), zusätzlich zur ResourceGroup zur ServicePlanResourceGroup hinzufügen.

4

Nach dem Hinzufügen des Prinzipals ist es notwendig, ihn als "Benutzer" in der "Ressourcengruppe" hinzuzufügen und ihm "Contrib" -Rechte zu geben.

Wenn Sie dies vergessen, erhalten Sie die obige Fehlermeldung.

0

Hier ist was für mich behoben (ich war auch die genaue Ausnahme als OP).Befolgen Sie diese Anleitung https://gooroo.io/GoorooTHINK/Article/16420/Lets-Encrypt-Azure-Web-Apps-the-Free-and-Easy-Way/21872#.WWUzBoTythG, wenn es um die Konfiguration der Letsencrypt geht. Geben Sie die Werte in den Appsettings an (anstatt dem Formular manuell Werte hinzuzufügen), müssen Sie das Häkchen für "Einstellungen aktualisieren" nicht beibehalten, und Sie werden einen Schritt weiter gehen.

Offenbar entspricht diese Ausnahme irgendwie Problem beim Zugriff/Speichern von Werten auf die Konfigurationsdatei.

Sehen Sie, wenn das hilft.

1

Ich stieß auf das gleiche Problem für einen neuen Azure App Service. Es stellte sich heraus, dass ich vor dem Ausführen des Let's Encrypt-Assistenten tatsächlich eine Web-App bereitstellen musste. Wenn die standardmäßige Azure App Service-Zielseite für eine leere Site der Inhalt ist, kann der Assistent seine Aufgabe nicht ausführen.

+0

Ich frage mich, warum der Zauberer mit der Standard-Zielseite nicht magisch ist. Danke für die Information! –

0

Ich lief in die exakt gleiche Ausnahme und anschließend diese Schritte es

  1. Navigieren Sie zu Abonnements in Azure Portal
  2. Wählen Sie das Abonnement zu lösen, in dem der App-Service
  3. Select Access Control gehostet wird (IAM)
  4. hinzufügen einer neuen Einheit
  5. die Teilnehmerrolle auswählen
  6. Suche nach dem Service-Pri ncipal
  7. Fügen Sie den Benutzer

Dies sofort beschlossen, die Ausnahme von unzureichenden Zugriffsrechte

aktualisieren Nach der steps (5. Register Service Principal) sicher sein, dass Sie in die richtige Abonnement unterzeichnet werden. In meinem Fall habe ich den Service-Principal im falschen Abonnement erstellt, daher wurde der Principal dem App-Service nicht korrekt zugewiesen.