使用JAVA的keytool生成jks证书,通过jks证书生成pfx证书,tomcat配置https

本文使用JKD1.8版本。

keytool常用命令(来自网络)

-genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书(在没有指定生成位置的情况下,keystore会存在用户系统默认目录)

-alias       产生别名,每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写

-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中)

-keyalg      指定密钥的算法 (如 RSA  DSA(如果不指定默认采用DSA))

-validity    指定创建的证书有效期多少天

-keysize     指定密钥长度

-storepass   指定密钥库的密码(获取keystore信息所需的密码)

-keypass     指定别名条目的密码(私钥的密码)

-dname       指定证书拥有者信息 

-list        显示密钥库中的证书信息     

-v           显示密钥库中的证书详细信息

-export      将别名指定的证书导出到文件 

-file        参数指定导出到文件的文件名

-delete      删除密钥库中某条目 

-printcert   查看导出的证书信息  

-keypasswd   修改密钥库中指定条目口令   

-import      将已签名数字证书导入密钥库 


第一步,生成siyao.jks文件

cmd进入jdk的bin目录,执行下面命令:

keytool -genkey -alias siyao -keypass 你的密码 -keyalg RSA -sigalg sha256withrsa -keysize 1024 -validity 36500 -keystore d:/siyao.jks -storepass 你的密码

执行成功后,在d盘下可以看到siyao.jks文件。

第二步,基于siyao.jks文件生成siyao.pfx(代码来自网络)

public class MyTest {

    public static final String PKCS12 = "PKCS12";
    public static final String JKS = "JKS";
    public static final String PFX_KEYSTORE_FILE = "d://siyao.pfx";
    public static final String KEYSTORE_PASSWORD = "jxnu123";
    public static final String JKS_KEYSTORE_FILE = "d://siyao.jks";

    public static void coverToPfx() {
        try {
            KeyStore inputKeyStore = KeyStore.getInstance("JKS");
            FileInputStream fis = new FileInputStream(JKS_KEYSTORE_FILE);
            char[] nPassword = null;

            if ((KEYSTORE_PASSWORD == null)
                    || KEYSTORE_PASSWORD.trim().equals("")) {
                nPassword = null;
            } else {
                nPassword = KEYSTORE_PASSWORD.toCharArray();
            }

            inputKeyStore.load(fis, nPassword);
            fis.close();

            KeyStore outputKeyStore = KeyStore.getInstance("PKCS12");

            outputKeyStore.load(null, KEYSTORE_PASSWORD.toCharArray());

            Enumeration enums = inputKeyStore.aliases();

            while (enums.hasMoreElements()) { //   we   are   readin   just   one   certificate.

                String keyAlias = (String) enums.nextElement();

                System.out.println("alias=[" + keyAlias + "]");

                if (inputKeyStore.isKeyEntry(keyAlias)) {
                    Key key = inputKeyStore.getKey(keyAlias, nPassword);
                    Certificate[] certChain = inputKeyStore
                            .getCertificateChain(keyAlias);

                    outputKeyStore.setKeyEntry(keyAlias, key, KEYSTORE_PASSWORD
                            .toCharArray(), certChain);
                }
            }

            FileOutputStream out = new FileOutputStream(PFX_KEYSTORE_FILE);

            outputKeyStore.store(out, nPassword);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        coverToPfx();
    }

执行成功后,在d盘下可以看见siyao.pfx文件。

第三步,配置tomcat8.0.33的conf/server.xml



  
  
  
  
  
  
  
  

  
  
    
    
     
    
    

            
     

  
  

    
    


    
    
    
    
    
    
    

    
	
	


    

    
    

      
      

      
      
        
        
      

      

        
        

        
        

      
    
  

主要配置在这块。不通版本的tomcat配置还是有差别的,需要注意。

你可能感兴趣的:(个人笔记,keytool,keytool生成pfx,tomcat配置https)