Comment installer les certificats auto-signés dans iOS 11

j'ai utilisé des certificats auto-signés dans l'intranet de mon petit bureau et après la mise à niveau à iOS 11, Les certificats ne fonctionne pas pour moi. (Chrome et d'autres navigateurs sont heureux avec eux.)

j'ai mon fichier CA auto-signé et je l'ai converti en .der fichier, et l'a installé sur mon iPad via le web.

ipad with cert

mais contrairement à cette réponse , Je ne peux pas voir mon certificat de ca racine sur les paramètres > General > About > Certificate Trust settings.

no cert??

y a-t-il des restrictions pour que les certificats soient fiables dans iOS? Mon iPhone et mon iPad ont tous les deux ce problème. Il n'y a rien de mal dans ma procédure?

j'ai utilisé ces codes pour faire mon certificat ca.

openssl genrsa -des3 -out rootCA.key 4096

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt

openssl x509 -in rootCA.crt -out cert.der -outform DER
5
demandé sur m1r1k 2018-03-22 09:43:16

2 réponses

apparemment ios n'aime pas les certificats sans nom commun, il suffit donc de le régénérer avec CN non vide et il apparaîtra dans la liste des certificats racine

1
répondu m1r1k 2018-04-25 15:09:44

si vous ne voyez pas le certificat sous General->About->Certificate Trust Settings, vous n'avez probablement pas l'AC racine installée. Très important -- doit être une CA racine, pas une CA intermédiaire.

c'est très facile à déterminer en utilisant openssl:

$ openssl s_client -showcerts -connect myserver.com:443 </dev/null

cela vous montrera la sortie pour les certificats dans la chaîne cert, quelque chose comme ceci:

    Certificate chain
     0 s:/C=US/ST=California/L=SAN FRANCISCO/O=mycompany.com, inc./OU=InfraSec/CN=myserver.com
       i:/C=US/O=mycompany.com, inc./CN=mycompany.com Internal CA 1A
    -----BEGIN CERTIFICATE-----
    ....encoded cert in PEM format....
    -----END CERTIFICATE-----

et il doit montrer une chaîne de certs tout le chemin à l'autorité de certification RACINE. Suivez la sortie, en portant attention à la valeur" i: "qui indique L'émetteur. Enfin, vous devriez obtenir à la CA racine et peut simplement copier-coller à A.fichier pem (assurez-vous d'inclure les lignes BEGIN CERTIFICATE et END CERTIFICATE!). Maintenant, vous pourrez l'installer sur votre simulateur en le glissant dans la fenêtre du simulateur.

si votre CA racine n'est pas listé, alors trouvez le niveau supérieur dans la sortie, puis exportez-le à partir du porte-clés Accès.App. Cela suppose que vous êtes en mesure de frapper le site web via Safari/Chrome, de sorte que vous aurez dû faire confiance manuellement le site web d'abord.

ma sortie 'openssl s_client' s'est terminée avec le dernier certificat affiché avec un émetteur comme celui-ci:

i:/C=US/O=mycompany.com, inc./CN=mycompany.com Internal Root CA 1

je suis en mesure de frapper le site Web cible avec succès via Safari/Chrome, ce qui signifie Porte-Clés a stocké et lui fait confiance. Je viens de lancer L'accès au porte-clés.app via Spotlight et tapé "miscompany" dans la barre de recherche. Il a montré mon certificat (Kind = certificat) pour "mycompany.com racine interne CA 1". J'ai juste cliqué sur "Exporter" et je l'ai sauvegardé .fichier cer.

voilà! Maintenant je peux faire glisser-n-drop it sur mon simulateur et le CA racine apparaîtra sous General - > About... et je peux l'activer.

si, pour une raison quelconque, vous devez convertir PEM file to DER/ CER, il suffit d'utiliser cette commande:

$ openssl x509 -in myfile.pem -out myfile.der -outform DER

J'espère que ça va aider, j'ai dû faire ça des douzaines de fois et j'ai pensé qu'il était temps que je note quelques notes pour ne pas oublier.

0
répondu DustinB 2018-09-26 14:38:23