2009-10-07 7 views
1

J'essaie de me connecter à un service Web (non sous mon contrôle) configuré pour authentifier les utilisateurs via des certificats SSL. J'ai un certificat valide au format PKCS12 contenant le certificat client et la clé privée associée. Le certificat est émis par une autorité de certification acceptée par le fournisseur de services Web.L'authentification SSL du client provoque l'erreur 403.7 de IIS

L'installation du certificat et en essayant d'accéder à la zone d'accès restreint dans différents navigateurs donne les résultats suivants:

  • IE6 - fonctionne très bien et je peux récupérer le WSDL

  • IE7 - Demande le certificat mais échoue ensuite avec un 403,7 du serveur

  • Firefox3 - Set demander, mais pas rapide et échoue avec un 403,7

  • Safari 4 - certificat est installé dans le trousseau, mais pas rapide et 403,7

De plus, en essayant d'accéder au service Web par programmation (Java) échoue avec le même 403,7 code d'erreur.

Etrange que cela fonctionne dans IE6 mais dans aucun autre navigateur, qu'est-ce que je manque? Dois-je inclure la chaîne de certificats CA complète dans le fichier PKCS12?

Toute aide serait grandement appréciée.

Répondre

1

Ok, ça marche. La réponse est oui, j'ai dû inclure tous les certificats CA intermédiaires dans le fichier PKCS12. Je CONCATENE tous les certs intermédiaires de CA plus la racine CA cert dans le fichier « chain.pem » puis exécuté la commande suivante:

openssl pkcs12 -export -chain -CAfile chain.pem -in cert.pem -inkey key.pem -out cert.p12 
2

Cela fonctionne vraiment! Si vous êtes perturbé par les options -inkey et -in, il s'agit de la clé privée et du certificat du fichier p12. Vous pouvez convertir le fichier P12 au format pem avec:

openssl pkcs12 -in file.p12 -clcerts -out file.pem 

et utilisez la commande ci-dessus avec « -dans fichier.pem » seulement.

En outre, vous pouvez importer le certificat CA racine dans votre magasin certs de confiance, voici la description comment faire cela: http://gagravarr.org/writing/openssl-certs/others.shtml#ca-openssl, puis vous n'avez pas à copier manuellement les certificats. Après l'installation du cert, utilisez la commande ci-dessus sans le "-CAfile chain.pem".