Se connecter à un site en https avec un certificat p12

Le côté serveur m'a donné un .p12 fichier de certificat que j'ai cliqué et installé sur ma machine et ensuite, je peux accéder à la HTTPS site via le navigateur. Maintenant, ils veulent me faire analyser leur site avec le certificat donné. Je suis bloqué à la première étape de celle-ci, en essayant d'obtenir le inputStream de la httpsURLConnection. Le site n'a pas de connexion. Il vérifie seulement si vous avez le certificat ou pas.

Ce que j'ai fait jusqu'à présent était d'utiliser Firefox pour exporter le certificat dans un .crt format de fichier. Ensuite, j'ai utilisé la commande keytool pour l'importer (le .crt fichier, pas le .p12) en java fichier de clés. Puis dans le code:

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
File ksFile = new File(keystorePath);
in = new FileInputStream(ksFile);
ks.load(in, "changeit".toCharArray());
X509Certificate cert = (X509Certificate) ks.getCertificate(certificateAlias);

SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

HttpsURLConnection con = (HttpsURLConnection) (new URL(urlString)).openConnection();
con.connect();
con.getInputStream();
con.disconnect();

La getInputStream() me donnera l'erreur 403 accès interdit. J'ai cherché à travers d'autres sujets connexes et sont en réalité profondément encore plus confus qu'avant de les lire. Serions reconnaissants de réponses.

Détails Supplémentaires:

  • Je viens juste de instancié le certificat, et n'ont pas de laisser le programme sait toute sorte de clés (privée, publique, etc.). Donc, ce que je crois que je dois présenter à ces touches pour le serveur, de le laisser savoir que je suis effectivement le certificat. Je n'ai absolument aucune idée de comment faire cela, à la fois la logique et la syntaxe sage.
  • J'ai essayé la commande keytool pour importer le .p12 cert fichier dans le fichier de clés, mais en quelque sorte, l'-pkcs12 option n'est pas reconnu par l'utilitaire keytool. Aucune idée sur la façon d'utiliser directement cette .p12 cert serait très bien aussi.
  • trustAllCert est un élément de tableau de TrustMangers qui ne permet pas de valider quoi que ce soit (faire confiance à tous). Je ne sais pas si je dois continuer à l'utiliser. En fait, maintenant, j'ai effectivement un seul cert à la confiance. Quelle est la bonne façon d'écrire un trustManger dans ce cas?
  • Je n'ai pas de contrôle sur le côté serveur. Tous on m'a donné sont l'URL pour accéder à leur site, qui est sous protocole HTTPS, et un .certificat p12. Le site n'a pas de connexion. Si le certificat est installé, je peux y aller.
InformationsquelleAutor Namela | 2011-08-09