2016-04-18 28 views
5

Sto cercando di ottenere la spina sito cifrare del Azure Let a lavorare per uno dei miei siti web Azure seguendo le istruzioni disponibili all'indirizzo:errore Encrypt di Azure Let

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

ma sto ottenendo un errore di autorizzazione quando Lo gestisco Non ho idea di dove iniziare a cercare di risolvere questo problema e qualsiasi aiuto sarebbe più che benvenuto.

L'errore è la seguente:

Microsoft.Rest.Azure.CloudException: Il client '{id}' con oggetto id '{stessa id qui ??}' non ha l'autorizzazione a eseguire azione 'Microsoft.Web/sites/read' over scope '/ subscriptions/{identificativo sottoscrizione} /resourceGroups/Default-Web-NorthEurope/provider/Microsoft.Web/sites/ {sitename}'. a Microsoft.Azure.Management.WebSites.SitesOperations.d__29.MoveNext()

Aggiornamento

E 'stato un problema con il principi accesso al web app.

ho deciso di seguire attraverso cacce troy procedura dettagliata qui: https://www.troyhunt.com/everything-you-need-to-know-about-loading-a-free-lets-encrypt-certificate-into-an-azure-website/

che è abbastanza buono - che usa il vecchio portale azzurro per impostare la directory attiva che ho trovato un po 'più utile, come ho potuto effettivamente vedere cosa stava succedendo.

Comunque ho tutto il percorso attraverso il processo fino alla richiesta di certificato reale e ora sto ottenendo un errore 403 del server restituito:

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

Non sono stato in grado di risolvere questo problema. L'hai capito? –

+1

Purtroppo no: stavo riscontrando ogni sorta di problemi con Azure perché avevo sottoscritto il programma di benefit per gli sviluppatori e un altro abbonamento in parallelo. Sono giunto alla conclusione che avevo già speso di più il costo dell'acquisto di un certificato in tempo per provare a risolverlo e non volevo passare tutto questo ogni volta che avevo un nuovo sito che aveva bisogno di https (che è praticamente tutto quello che vuoi ottenere in Google adesso) Come menziona Troy nel suo post, il processo ha bisogno di essere automatizzato alla grande. –

+0

"Era un problema con i principi di accesso all'app web." - Potresti chiarire? Questa potrebbe essere la risposta alla domanda iniziale, che molte persone verranno qui cercando (incluso me) – stuartdotnet

risposta

0

è il problema con l'accesso. Per favore controlla 5. Registra una parte principale del servizio dell'articolo che hai menzionato. Hai lo stesso ApplicationId quando la parte è stata eseguita con ApplicationId nella pagina LetsEncrypt? Lo stesso segreto? Controlla, perché sembra qualcosa di sbagliato in quel passo.

P.S. Ho appena controllato la procedura senza l'errore che hai menzionato.

0

Mi sono imbattuto nello stesso problema.

ho risolto non specificando il dominio personalizzato (ad es lybecker.com) in configurazione estensione sito Encrypt del Azure Let, ma usando piena lybecker.onmicrosoft.com

+0

Non vedo dove si immette il dominio personalizzato nell'estensione del sito Azure Lets Encrypt. Dov'è? –

4

Per me, questo problema è venuto quando il mio ResourceGroup non era uguale al mio ServicePlanResourceGroup.

Quindi, se questi non sono uguali, è necessario aggiungere la registrazione dell'app creata (il clientId per cui è stata creata la chiave segreta) a ServicePlanResourceGroup in aggiunta a ResourceGroup.

4

Dopo aver aggiunto il principal, è necessario aggiungerlo come "Utente" nel "Gruppo di risorse" e dargli i diritti "Contrib".

Se si dimentica ciò, verrà visualizzato il messaggio di errore sopra riportato.

0

Ecco cosa è stato risolto per me (stavo ottenendo anche l'esatta eccezione come OP).Segui questa guida https://gooroo.io/GoorooTHINK/Article/16420/Lets-Encrypt-Azure-Web-Apps-the-Free-and-Easy-Way/21872#.WWUzBoTythG quando si tratta di configurare la Letsencrypt. Specificare i valori nelle impostazioni dell'app (invece di fornire manualmente valori al modulo) in questo modo non è necessario mantenere il segno di spunta per "aggiornare le impostazioni" e si farà un ulteriore passo avanti.

Apparentemente questa eccezione corrisponde in qualche modo al problema di accesso/salvataggio dei valori nel file di configurazione.

Vedere se questo aiuta.

1

Ho riscontrato lo stesso problema per un nuovo servizio app di Azure. Ho scoperto che dovevo effettivamente distribuire un'applicazione web prima di eseguire la procedura guidata Let's Encrypt. Quando la pagina di destinazione del servizio app di Azure predefinita per un sito vuoto è il contenuto, la procedura guidata non è in grado di svolgere il proprio lavoro.

+0

Mi chiedo perché il mago non farà la magia con la pagina di destinazione predefinita. Grazie per le informazioni! –

0

ho incontrato la stessa eccezione e seguito questi passi per risolverlo

  1. Spostarsi Abbonamenti in Azure Portal
  2. Selezionare la sottoscrizione in cui il servizio App è ospitato
  3. Select Access Control (IAM)
  4. Aggiungere una nuova entità
  5. Selezionare il collaboratore di ruolo
  6. ricerca dopo il servizio Pri ncipal
  7. Aggiungi l'utente

Questa immediatamente risolto l'eccezione dei diritti di accesso insufficienti

Aggiornamento seguendo le steps (5. Register Service Principal) essere sicuri che aver effettuato l'accesso alla sottoscrizione corretta. Nel mio caso ho creato il servizio principale nell'abbonamento sbagliato, quindi il principal non è stato assegnato correttamente al servizio app in uso