boucle avec un certificat PKCS#12 en écriture bash

je dois me connecter à un service Web, où un certificat pkcs12 est un must. l'idée était d'utiliser curl dans un script bash (sous OS X, pour être précis).

j'ai appris que l'une des rares choses que curl ne peut pas faire en communication, c'est de gérer les certificats pkcs12 (.p12). quelles sont mes options?

j'ai lu que convertir le certificat au format PEM fonctionnerait (en utilisant openssl), cependant je n'ai aucune idée comment dire à curl qu'il obtient un PEM et devrait communiquer avec un webservice demande des certificats PKCS12.

convertir pkcs12 en pem serait fait comme ceci (par exemple), cela a fonctionné pour moi, cependant je ne les ai pas utilisés avec succès avec curl:

openssl pkcs12 -in mycert.p12 -out file.key.pem -nocerts -nodes
openssl pkcs12 -in mycert.p12 -out file.crt.pem -clcerts -nokeys

tous les conseils? ou, de toute autre solution de rechange à friser? la solution devrait être basée sur la ligne de commande.

18
demandé sur jww 2015-08-27 18:43:13

1 réponses

je pense que vous avez déjà résolu, mais j'ai eu le même problème. Je réponds pour partager ma solution.

Si vous avez un .fichier p12 votre démarche est la bonne. Tout d'abord, vous devez obtenir le cert et la clé séparée du fichier p12. Par exemple, si vous avez un mycert.fichier p12 exécution

openssl pkcs12 -in mycert.p12 -out file.key.pem -nocerts -nodes
openssl pkcs12 -in mycert.p12 -out file.crt.pem -clcerts -nokeys

alors vous devez faire l'appel à votre url. Par exemple, supposons que vous souhaitez obtenir le wsdl d'un service web spécifique

curl -E ./file.crt.pem --key ./file.key.pem https://myservice.com/service?wsdl

Si les fichiers fichier.CRT.pem et fichier.clé.pem sont dans votre dossier de travail "./" est obligatoire.

40
répondu Smalltree1989 2015-11-25 10:45:16