L'accès téléchargé certificats dans azure web sites
Quand j'ai été en utilisant le web de rôle, j'étais juste en téléchargeant le certificat dans le portail azure et j'ai été capable de le voir .Maintenant, j'ai basculé vers le site web azure et j'ai téléchargé le certificat dans le portail de gestion azure, mais mon code ne pas la voir du tout.
Est-il des configurations que nous devons faire, ou de quelque autre façon à l'accès téléchargé certs dans azure web sites.
C'est de cette façon que je suis en train d'essayer d'accéder à la téléchargés cert .
private List<string> GetAvailableCertificatesFromStore()
{
var list = new List<string>();
var store = new X509Store(StoreName.My,StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
try
{
foreach (var cert in store.Certificates)
{
//todo: add friendly name
list.Add(string.Format("{0}", cert.Subject));
}
}
finally
{
store.Close();
}
return list;
}
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR - 23 juillet 2015: Cette réponse est aujourd'hui obsolète (Il était bon à l'époque c'était à condition tout de même). Veuillez voir Armstrong réponse ci-dessous.
Les choses fonctionnent différemment dans
Azure Cloud Services (Web/Worker Roles)
etAzure Websites
. Dans Azure Cloud Services lorsque vous téléchargez un certificat dans le cadre de la gestion du portail et de préciser que l'empreinte numérique du certificat et de l'emplacement d'installation dans votre rôle de propriétés, lorsque votre rôle est déployé dans une VM le tissu responsable de plus, il installe ces certificats automatiquement pour vous. C'est la raison pour laquelle le code ci-dessus fonctionne un rôle web.Dans le site web, vous auriez besoin de le faire sur votre propre. Malheureusement, en raison des restrictions de sécurité dans un site web Azure, vous ne pouvez pas installer un certificat dans le magasin de certificats. Pour travailler avec des certificats, vous devez inclure le certificat du fichier PFX avec votre code et de travailler avec ce fichier de certificat. Vous ne pouvez pas installer le certificat dans le magasin de certificats.
Dans le peu de travail que j'ai fait avec Azure Site web et des Certificats, j'ai trouvé que le certificat ne fonctionne que si le fichier PFX est inclus dans
AppData
dossier. Aussi, vous pouvez rencontrer des erreurs commeCryptographicException: The system cannot find the file specified
. Si vous rencontrez cette erreur, vous pouvez trouver ce blog utile: http://blog.tylerdoerksen.com/2013/08/23/pfx-certificate-files-and-windows-azure-websites/À l'aide de certificats dans un Site web Azure fonctionne différemment de la façon dont il le fait dans une copie locale de IIS ou même lors de l'exécution d'un site web dans le mode de débogage de Visual Studio. En bref, le site n'a pas accès à un magasin de certificats dans le sens traditionnel du terme ... il est tout fait de mémoire.
Tout d'abord, une fois que vous avez téléchargé votre certificat via le portail Azure, vous devez ajouter une appsetting (également par le biais du portail) appelé WEBSITE_LOAD_CERTIFICATES et définir la valeur de l'empreinte de votre dépôt de certificat. Cela peut être une liste séparée par des virgules de plusieurs pouces si vous voulez, ou même * pour charger tous vos certificats téléchargés. Je suis en présumant que cette force les certificats à être chargées dans la mémoire.
Pour ensuite charger votre certificat, vous pouvez effectuer les opérations suivantes:
Changer de "false" à "true" si vous voulez vous assurer que le certificat est valide.
J'ai trouvé cette information ici, ce qui explique beaucoup mieux que moi: http://azure.microsoft.com/blog/2014/10/27/using-certificates-in-azure-websites-applications/
cert.PrivateKey.ToXmlString(true)