Comment accéder au magasin de certificats Java avec Java?


J'ai découvert que Java a son propre "magasin de certificats" qui se trouve dans un fichier dans le dossier security dans le dossier lib.

Vous pouvez y accéder à partir du Panneau de configuration Java -> Sécurité -> Gérer les certificats.

Mais je veux y accéder via Java-Code. Quelqu'un avez quelques informations à ce sujet? Comment les certificats sont-ils stockés dans le fichier de certificats? Existe-t-il un moyen intégré à Java pour cela ou une documentation officielle de Java / Oracle?

Merci!

Author: Raúl, 2015-04-22

2 answers

Nous avons dû utiliser des certificats via le code pour effectuer des appels d'API vers certaines applications. Nous n'avons pas pu installer les certificats sur le conteneur de code pour certaines raisons. Le fournisseur de services API nous a donné le .fichier cer.Le client HTTP Apache a été utilisé à cette fin

Commencez par créer d'abord un magasin de clés basé sur un fichier et chargez-le .fichier cer sur elle

keytool -import -alias joe -file <path>/file.cer -keystore <keystoreName> -storepass <password>

Ajoutez ensuite le fichier keystore généré en tant que ressource dans l'application et construisez votre HttpClient personnalisé pour utiliser ce magasin de clés

 import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
 import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
 import org.apache.http.ssl.SSLContexts;
 import javax.net.ssl.SSLContext;
 import java.io.File;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;

            File file = new File(getClass().getClassLoader().getResource(<pathTokeystoreFile>).getFile());
                    SSLContext sslcontext = SSLContexts.custom()

                            .loadTrustMaterial(file, CERT_PASSWORD.toCharArray(),
                                    new TrustSelfSignedStrategy())
                            .build();
                    SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
                            sslcontext,
                            new String[]{"TLSv1", "SSLv3", "TLSv1.1", "TLSv1.2"},
                            null,
                            SSLConnectionSocketFactory.getDefaultHostnameVerifier());


             CloseableHttpClient customClient; 
            customClient = HttpClients.custom()
                            .setSSLSocketFactory(sslConnectionSocketFactory)
                            .build();
                }
 0
Author: sharpcodes, 2017-01-09 15:18:38