WinRT : Ajouter des certificats auto signés à l’autorité de certifications root
Si on veut utiliser un certificat non reconnu par une autorité de certification, il peut être intéressant d’embarquer nos propres certificats dans les applications que l’on déploie. De ce fait, l’application communique en SSL sans désactiver sur le client Http les erreurs liées au certificat “untrusted”. Pour ce faire, avant de faire nos requêtes Http, on doit ajouter nos certificats à l’autorité de certification root.
Méthode d’ajout de certificat qui fonctionne uniquement sur Windows 8 et Windows 10
Sur Windows 8/10 c’est très simple : il suffit d’ajouter le certificat dans vos Assets et d’ajouter une déclaration de type Certificates dans le Package.appxmanifest.
Méthode d’ajout de certificat qui fonctionne sur toutes les plateformes
Malheureusement, la méthode précédente ne fonctionne pas sur Windows Phone 8.1.
Pour cette plateforme il faut juste exécuter le code suivant :
async Task AddCertificateInTrustedRootAuthorities(string certificatePath) { Uri certificateUri = new Uri(certificatePath); var certificateFile = await StorageFile.GetFileFromApplicationUriAsync(certificateUri); IBuffer certBlob = await FileIO.ReadBufferAsync(certificateFile); var certificate = new Certificate(certBlob); var trustedStore = CertificateStores.TrustedRootCertificationAuthorities; trustedStore.Add(certificate); }Attention : ces deux méthodes ajoutent uniquement les certificats pour votre application, le certificat ne sera donc pas utilisable par une autre app.
Commentaires