Sto integrando la mia app con Xero che richiede due certificati. Li ho caricati su Azure con l'aiuto dell'articolo this, ma non riesco ancora a connettermi allo Xero API. Spero che qualcuno abbia esperienza nell'integrazione di un'applicazione partner Xero con un'app Web di Azure.Connessione del sito Web di Azure all'applicazione partner Xero
Ho caricato due file pfx; uno è un certificato autofirmato e l'altro è il certificato del partner emesso da Xero. L'ultimo file pfx contiene due certificati; un subconcessione commerciale privata CA1 (indipendentemente dal mezzo) e un certificato di identificazione Entrust univoco per la mia app.
Sto utilizzando il seguente codice per caricare i certificati per la loro identificazione unica:
static X509Certificate2 GetCertificateFromStore(string thumbprint)
{
var store = new X509Store(StoreLocation.CurrentUser);
try
{
thumbprint = Regex.Replace(thumbprint, @"[^\da-zA-z]", string.Empty).ToUpper();
store.Open(OpenFlags.ReadOnly);
var certCollection = store.Certificates;
var currentCerts = certCollection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
var signingCert = currentCerts.Find(X509FindType.FindByThumbprint, thumbprint, false);
if (signingCert.Count == 0)
{
throw new Exception($"Could not find Xero SSL certificate. cert_name={thumbprint}");
}
return signingCert[0];
}
finally
{
store.Close();
}
}
Questo funziona bene a livello locale, ma sul mio sito web azzurro ottengo un errore di 403.7:
The page you are attempting to access requires your browser to have a Secure Sockets Layer (SSL) client certificate that the Web server recognizes.
ho anche guardato i seguenti riferimenti per cercare di risolvere il problema:
- Xero Partner SSL configuration in Azure (Utilizza un clo il servizio ud e non un'app Web, quindi non ho potuto seguire i passaggi alla fine)
- 403 Forbidden when loading X509Certificate2 from a file (Thread pubblicato sui forum Xero sullo stesso problema, ha capito che la risoluzione è solo per una volta ancora; servizi cloud)
- Xero partner connections and Azure Websites (soluzione Pubblicato suggerisce di utilizzare una macchina virtuale)
Quello che non hanno ancora provato:
- Conversione mia web app per un servizio cloud; cercando di evitare di farlo, tuttavia, non sono sicuro di quali siano i passaggi.
- Utilizzo di una VM; Non ho trovato alcuna procedura dettagliata su come farlo, ma sembra un'opzione migliore di quella sopra.
Solo per riferimento, noi abbiamo lo stesso problema e ad un certo punto ha avuto un caso aperto con Microsoft su qui - https://social.msdn.microsoft.com/Forums/azure/en-US/c9e17417-e50d-4eff-9676-7d76db33264c/certificate-chain-not-being-imported-to-azure-website?forum = windowsazurewebsitespreview. –