Java Tutorial/Security/JKS

Материал из Java эксперт
Перейти к: навигация, поиск

JKS keystore: get certificate chain

   <source lang="java">

import java.io.FileInputStream; import java.security.KeyStore; import java.security.cert.CertPath; import java.security.cert.CertificateFactory; import java.util.ArrayList; import java.util.List; public class MainClass {

 public static void main(String args[]) throws Exception {
   String storename = args[0];
   char[] storepass = args[1].toCharArray();
   String alias = args[2];
   KeyStore ks = KeyStore.getInstance("JKS");
   ks.load(new FileInputStream(storename), storepass);
   java.security.cert.Certificate[] cchain = ks.getCertificateChain(alias);
   List mylist = new ArrayList();
   for (int i = 0; i < cchain.length; i++) {
     mylist.add(cchain[i]);
   }
   CertificateFactory cf = CertificateFactory.getInstance("X.509");
   CertPath cp = cf.generateCertPath(mylist);
   System.out.println(cp);
 }

}</source>





JKS: List aliases

   <source lang="java">

import java.io.FileInputStream; import java.security.KeyStore; import java.util.Enumeration; public class MainClass {

 public static void main(String args[]) throws Exception {
   String pass = "wshr.ut";
   String name = "mykeystore";
   FileInputStream in = new FileInputStream(name);
   KeyStore ks = KeyStore.getInstance("JKS");
   ks.load(in, pass.toCharArray());
   Enumeration e = ks.aliases();
   while (e.hasMoreElements()) {
     System.out.println(e.nextElement());
   }
 }

}</source>





Use JKS

   <source lang="java">

import java.io.FileInputStream; import java.security.KeyStore; import java.security.cert.Certificate; public class MainClass {

 public static void main(String args[]) throws Exception {
   String pass = "wshr.ut";
   String alias = "mytest";
   String name = "mykeystore";
   FileInputStream in = new FileInputStream(name);
   KeyStore ks = KeyStore.getInstance("JKS");
   ks.load(in, pass.toCharArray());
   Certificate c = ks.getCertificate(alias);
   in.close();
   System.out.println(c);
 }

}</source>





Use JKS KeyStore to load key

   <source lang="java">

import java.io.FileInputStream; import java.io.FileOutputStream; import java.security.KeyStore; public class MainClass {

 public static void main(String args[]) throws Exception {
   char[] oldpass = args[0].toCharArray();
   char[] newpass = args[1].toCharArray();
   String name = "mykeystore";
   FileInputStream in = new FileInputStream(name);
   KeyStore ks = KeyStore.getInstance("JKS");
   ks.load(in, oldpass);
   in.close();
   FileOutputStream output = new FileOutputStream(name);
   ks.store(output, newpass);
   output.close();
 }

}</source>