0 votes

Importer/Installer un certificat SSL sans drapeau CA

Notre équipe a le problème suivant :
Nous développons une application client pour Android et iOS en utilisant Unity + UniWebview + HTML. Cette application inclut des requêtes Ajax vers certains serveurs via jQuery. À des fins de test, nous utilisons un serveur de test au lieu du serveur réel. Ce serveur de test utilise un certificat SSL auto-signé. NOTE : Nous n'avons pas accès à ce serveur, donc changer le certificat SSL n'est probablement pas une option.
Lorsque nous avons testé le fichier .htm localement avec le navigateur de bureau, nous avons simplement importé ce certificat SSL dans Chrome et Mozilla Firefox. Avec cette approche, notre code HTML a fonctionné comme prévu.

Nous voulions maintenant le tester dans notre environnement UniWebview sur un appareil Android. Au début, l'application ne fonctionnait pas. Lorsque nous avons testé le fichier .htm dans le navigateur mobile Chrome, les demandes ont été bloquées en raison du certificat SSL non fiable. Nous avons donc cherché une solution pour importer le certificat sur Android.

La solution la plus courante que nous avons trouvée consiste à exporter le certificat dans chrome ou firefox et à le copier sur le lecteur de carte SD de l'appareil. Ensuite : Paramètres > Sécurité > Installer à partir d'une mémoire USB, puis sélectionner le certificat et l'installer. Après l'installation, nous avons reçu le message d'une installation réussie. Mais quand on le cherche dans la liste des certificats d'utilisateur, il n'apparaît pas. Après avoir testé à nouveau notre script, il ne fonctionne toujours pas. Nous avons essayé cette solution à plusieurs reprises en expérimentant différents formats et encodages, mais nous avons toujours obtenu le même résultat.

La deuxième tentative a consisté à utiliser l'application CAdroid pour importer des certificats SSL sur Android. Mais là aussi, nous avons rencontré un problème. À l'étape 4 (vérification du certificat), nous avons reçu un message d'erreur indiquant que les contraintes de base sont manquantes. Par conséquent, il n'y a pas de drapeau CA défini, donc le drapeau CA n'est pas vrai.

Le troisième essai a consisté à utiliser l'émulateur Android de l'Android-SDK. Cette fois, nous avons rencontré le même problème que lors de notre premier essai, en installant le certificat directement sur Android.

TL;DR
Alors ma question : Est-il possible d'installer ce certificat auto-signé sur Android ? sans ayant un drapeau CA activé ?
Si ce n'est pas le cas, est-il possible de modifier ce certificat existant, afin qu'il puisse être installé ?
REMARQUE : La création d'un nouveau certificat n'est PAS une véritable option.
NOTE : Nous n'avons que les fichiers de certificats, nous avons exporté avec chrome et firefox.
J'ai trouvé ce post : L'installation d'un certificat auto-signé est un succès, mais Android agit comme si le certificat n'existait pas. . Dans les commentaires, il est question de modifier un certificat existant, mais je ne suis pas sûr que ce soit une option pour nous.

Dispositif de test : Samsung GT-N8010 (Galaxy Note 10.1) Android 4.4.2

Meilleures salutations

0voto

Steffen Ullrich Points 116

Est-il possible d'installer ce certificat auto-signé sur Android sans avoir un drapeau d'autorité de certification ?

Android utilise OpenSSL (ou le fork BoringSSL dans les versions ultérieures) comme pile SSL sous-jacente. OpenSSL n'acceptera pas un certificat auto-signé à moins que le drapeau CA soit vrai, car même un certificat auto-signé doit avoir les drapeaux corrects pour qu'il puisse se signer lui-même (c'est-à-dire le drapeau CA). Ainsi, même si vous êtes en mesure d'installer le certificat, il ne sera pas utilisé comme ancre de confiance pour la validation, c'est-à-dire que la validation échouera.

Si ce n'est pas le cas, est-il possible de modifier ce certificat existant, afin qu'il puisse être installé ? REMARQUE : La création d'un nouveau certificat n'est PAS une véritable option.

Non, vous ne pouvez pas modifier un certificat existant. Vous pouvez probablement recréer le certificat si vous avez accès au certificat original et à la clé privée.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X