Ich habe JAVA_HOME=C:\Users\myuser\jdk1.8.0_65
Nicht in der Lage Zertifikat zu importieren in cacert
JRE Sytem Bibliothek in Eclipse Punkte C:\Users\myuser\jdk1.8.0_65
java -version
gibt C:\Users\myuser\jdk1.8.0_65
Zertifikat importieren von:
C: \ Benutzer \ myuser \ jdk1.8.0_65 \ bin \ keytool.exe -importcert -trustcacerts -keystore C: \ Benutzer \ myuser \ jdk1.8.0_65 \ jre \ lib \ security \ cacerts -stor epass changeit -noprompt -alias ldap -datei C: \ Users \ myuser \ certificates \ ldap_cer.cer
Keytool Liste gibt:
C:\Users\myuser>keytool -list
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 0 entries
Wenn ich versuche, das Zertifikat mit unten-Programm überprüfen kann ich Sehen Sie den Eintrag, warum keytool -list
mir nicht das gleiche Ergebnis gibt? Wie kann ich ein Zertifikat hinzufügen? Was ich vermisse?
package com.;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.Certificate;
import java.util.Enumeration;
public class HandShake {
static FileInputStream is;
public static void main(String[] args) {
try {
File file = new File("C://Users//myuser//jdk1.8.0_65//jre//lib//security//cacerts");
System.setProperty("javax.net.ssl.keyStore", file.getAbsolutePath());
System.out.println(System.getProperty("javax.net.ssl.keyStore"
));
is= new FileInputStream(file);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
String password = "changeit";
keystore.load(is, password.toCharArray());
Enumeration enumeration = keystore.aliases();
while(enumeration.hasMoreElements()) {
String alias = (String)enumeration.nextElement();
if(alias.equals("ldap")){
System.out.println("alias name: " + alias);
Certificate certificate = keystore.getCertificate(alias);
System.out.println(certificate.toString());
}
}
} catch (java.security.cert.CertificateException e4) {
e4.printStackTrace();
} catch (NoSuchAlgorithmException e1) {
e1.printStackTrace();
} catch (FileNotFoundException e2) {
e2.printStackTrace();
} catch (KeyStoreException e3) {
e3.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(null != is)
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Dank Noch ich das Zertifikat Verkettungs Fehler. Wie kann ich sicherstellen, dass der Schlüsselspeicher C: \ Users \ myuser \ jdk1.8.0_65 \ jre \ lib \ security \ cacerts referenziert wird, wenn ich mein Java-Programm –
ausführe, habe ich meine Antwort bearbeitet, um Ihre Frage zu beantworten –