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!
2 answers
Regardez le keystore java, cela peut vous aider:
Http://docs.oracle.com/cd/E19830-01/819-4712/ablqw/index.html
Https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores
Http://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html
Exemples d'importation de certificats en java:
Importer par programme CA trust cert dans un fichier keystore existant sans utiliser keytool
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();
}