`
kiki1120
  • 浏览: 314524 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Java对证书的生成、导入和删除操作

阅读更多
	/**
	 * 生成自签名证书
	 * @param alias
	 * @param pass
	 * @param dn
	 * @param keysize
	 * @param validity
	 * @param jksfile
	 * @throws Exception
	 */
	public void generateJKS(String alias,String pass,String dn,String keysize,String validity,String jksfile)throws Exception{
		CommandRunner runner = null;
		Vector<String> v = new Vector<String>();
		v.add(KEY_TOOL);
		v.add("-genkey");
		v.add("-alias");
		v.add(alias);
		v.add("-keyalg");
		v.add(KEYALG_RSA);
		v.add("-keysize");
		v.add(keysize);
		v.add("-keystore");
		v.add(jksfile);
		v.add("-dname");
		v.add(dn);
		v.add("-storetype");
		v.add("jks");
		v.add("-storepass");
		v.add(pass);
		v.add("-keypass");
		v.add(pass);
		v.add("-validity");
		v.add(validity);
		try{
			runner = new CommandRunner(v);
			runner.runCommand();
		}catch(Exception e){
			throw new CertificateException("generateJKS", e);
		}
	}
	
	/**
	 * 产生证书请求
	 * @param alias
	 * @param pass
	 * @param dn
	 * @param keysize
	 * @param validity
	 * @param csrfile
	 * @param csrkeystore
	 * @return String
	 * @throws Exception
	 */
	public String generateCSR(String alias,String pass,String dn,String keysize,String validity,String csrfile,String csrkeystore)throws Exception{
		generateJKS(alias, pass, dn, keysize, validity, csrkeystore);
		InputStream in = null;
		CommandRunner runner = null;
		Vector<String> v = new Vector<String>();
		v.add(KEY_TOOL);
		v.add("-certreq");
		v.add("-alias");
		v.add(alias);
		v.add("-keyalg");
		v.add(KEYALG_RSA);
		v.add("-dname");
		v.add(dn);
		v.add("-keystore");
		v.add(csrkeystore);
		v.add("-file");
		v.add(csrfile);
		v.add("-storepass");
		v.add(pass);
		v.add("-keypass");
		v.add(pass);
		v.add("-validity");
		v.add(validity);
		try{
			runner = new CommandRunner(v);
			runner.runCommand();
			in = new FileInputStream(csrfile);
            return Util.loadStreamToString(in, null);
		}catch(Exception e){
			throw new CertificateException("generateCSR", e);
		}finally{
			Util.closeStream(in);
		}
	}
	
	/**
	 * 导入第三方签发者CA证书到临时密钥库中
	 * @param alias
	 * @param pass
	 * @param cafile
	 * @param csrkeystore
	 * @throws Exception
	 */
	public void importSignedCACert(String alias,String pass,String cafile,String csrkeystore)throws Exception{
		CommandRunner runner = null;
		Vector<String> v = new Vector<String>();
		v.add(KEY_TOOL);
		v.add("-import");
		v.add("-alias");
		v.add(alias);
		v.add("-keystore");
		v.add(csrkeystore);
		v.add("-file");
		v.add(cafile);
		v.add("-storepass");
		v.add(pass);
		v.add("-keypass");
		v.add(pass);
		v.add("-noprompt");
		try{
			runner = new CommandRunner(v);
			runner.runCommand();
		}catch(Exception e){
			throw new CertificateException("importSignedCert cafile", e);
		}
	}
	
	/**
	 * 导入第三方签发证书到临时密钥库中
	 * @param alias
	 * @param pass
	 * @param certfile
	 * @param csrkeystore
	 * @throws Exception
	 */
	public void importSignedCert(String alias,String pass,String certfile,String csrkeystore)throws Exception{
		CommandRunner runner = null;
		Vector<String> v = new Vector<String>();
		v.add(KEY_TOOL);
		v.add("-import");
		v.add("-trustcacerts");
		v.add("-alias");
		v.add(alias);
		v.add("-keystore");
		v.add(csrkeystore);
		v.add("-file");
		v.add(certfile);
		v.add("-storepass");
		v.add(pass);
		v.add("-keypass");
		v.add(pass);
		try{
			runner = new CommandRunner(v);
			runner.runCommand();
		}catch(Exception e){
			throw new CertificateException("importSignedCert certfile", e);
		}
	}
	
	/**
	 * 删除签发者证书
	 * @param alias
	 * @param pass
	 * @param csrkeystore
	 * @throws Exception
	 */
	public void deleteSignedCACert(String alias, String pass, String csrkeystore)throws Exception{
		CommandRunner runner = null;
		Vector<String> v = new Vector<String>();
		v.add(KEY_TOOL);
		v.add("-delete");
		v.add("-alias");
		v.add("root");
		v.add("-keystore");
		v.add(csrkeystore);
		v.add("-storepass");
		v.add(pass);
		try{
			runner = new CommandRunner(v);
			runner.runCommand();
		}catch(Exception e){
			throw new CertificateException("delete cafile", e);
		}
	}

 

分享到:
评论

相关推荐

    Java签名证书信息查看工具

    Java Keytool是Java自带的一个命令行工具,它允许开发者生成、存储、管理和导出各种类型的密钥对(公钥和私钥)以及数字证书。这些密钥对和证书用于加密、解密、签名和验证签名,确保了代码的安全性和完整性。...

    Certificate_java_java数字签名_java签名证书_数字证书_

    6. **密钥库操作**:`keytool`命令行工具或Java API(如`KeyStore`类)用于管理密钥库,包括导入、导出、查看和删除证书及密钥。 7. **信任管理**:`java.security.cert.TrustManager`用于判断收到的证书是否可信,...

    java在IE中下载证书并安装(根证书)

    Java提供了`KeyStore`接口来管理这些操作,例如更新证书或删除不再需要的证书。 9. **数字签名**:根证书用于签署其他证书,这个过程就是数字签名。通过数字签名,可以验证证书信息未被篡改,并确认证书的签发者。 ...

    JAVA keytool数字证书生成及应用

    总之,`JAVA keytool`数字证书生成及应用是一个涵盖密钥对管理、证书创建、导入导出、以及安全配置等多个方面的重要话题。了解并熟练掌握这些操作,可以帮助开发者确保Java应用程序的安全性,并有效地进行网络通信的...

    java 实现数字证书的操作实现网络安全

    Java 数字证书操作是网络安全领域中的重要组成部分,主要用于身份验证和数据加密,确保网络通信的安全。在Java中,我们可以利用Java Cryptography Extension (JCE) 和 Java Secure Socket Extension (JSSE) 这些强大...

    javakeytool支持的类型及如何将证书导入jks中.docx

    它主要用于创建、导入、管理和删除密钥对与数字证书。本文将详细介绍 `keytool` 支持的不同类型的密钥库 (KeyStore) 以及如何将证书导入 JKS(Java KeyStore)文件中。 #### Java KeyStore 的类型 Java 提供了几种...

    证书转换生成工具protecle

    1. **密钥对生成**:用户可以使用Protecle生成RSA、DSA等算法的公钥和私钥对,这对于创建自签名证书或进行本地加密解密操作非常有用。 2. **证书导入导出**:支持导入PEM、DER、PKCS#7、JKS(Java KeyStore)等多种...

    Java安全_使用JavaAPI管理证书

    在Java中,KeyStore是存储密钥和证书的容器,它可以保存用户的私钥对、服务器的证书、证书链以及受信任的CA证书。KeyStore对象通过`java.security.KeyStore`类来表示,它支持多种类型的存储格式,如JKS(Java ...

    基于java的开发源码-密钥管理工具 Keytool-IUI.zip

    Keytool的全名是“Java Key Tool”,它被集成在Java Development Kit (JDK) 中,提供了生成、存储和管理密钥对、证书请求以及导入和导出证书的功能。在Java应用程序中实现安全的HTTPS连接、SSL/TLS协议或数字签名时...

    Java技术:java对安全性的支持.pdf

    利用keytool命令,可以执行创建证书请求(Certificate Signing Request, CSR)、删除密钥对、导出密钥对、导入密钥对、更改密钥库口令等操作。公钥证书是使用证书颁发机构(CA)提供的服务来签署的,CA负责为个人或...

    安卓android数字证书及扩展项解释生成类库

    4. **证书操作**:可能还包括导入、导出、更新和删除证书的功能。 5. **安全性**:确保在处理敏感的私钥和证书信息时,遵循最佳的安全实践。 `doc1`可能是一个文档,详细介绍了这个类库的使用方法和注意事项,包括...

    数字证书管理工具-使用java图形化编写,安装版直接安装使用(由于上传大小的限制,本版本为不带jre版,使用前请确保环境中已经安装过jdk)

    7.导入证书; 8.导出证书; 9.删除证书; =================================== 证书管理维护界面视图功能 1.数字证书显示界面:显示数字证书的详细信息,包括:证书信息、颁发给、颁发者、有效期、版本号、...

    java keytool使用例子

    总之,Java Keytool是Java环境下的强大工具,通过它我们可以方便地创建、管理和维护数字证书和密钥对,为网络安全提供基础保障。了解并熟练使用Keytool,对于进行安全的Java应用开发和系统运维至关重要。

    证书查看工具 portecle-1.7

    此外,Portecle还允许你查看和编辑密钥库中的条目,包括查看证书详细信息、更改密钥对的密码、删除不再需要的证书等。这对于管理和维护证书库至关重要。 Portecle的界面友好,操作直观,适合那些需要频繁处理证书...

    基于Java的密钥管理工具 Keytool-IUI.zip

    通过使用Keytool,开发者可以创建本地密钥库,生成公钥和私钥对,导入和导出证书,以及进行各种安全相关的验证。 Keytool-IUI则是在Keytool基础上的一个增强版本,它引入了图形用户界面,使得非技术用户也能更轻松...

    Java KeyTool使用

    Java KeyTool 使用指南 Java KeyTool 是 Java 安全套件中的一部分,用于创建、管理和维护数字证书。下面是使用 KeyTool 的详细...通过使用 KeyTool,可以轻松地生成密钥对、导出证书、将证书导入 Java 信任证书库等。

    keytool - 密钥和证书管理工具

    **描述**: Keytool是Java开发的一个强大工具,用于管理密钥对(公钥和私钥)以及数字证书。它可以帮助用户创建、存储、导出、导入和管理这些安全组件,这对于进行安全的网络通信和身份验证至关重要。 **知识点详解*...

    证书工具KeyTool1.6

    KeyTool是Java SDK提供的一款强大的命令行工具,用于管理和操作数字证书、密钥对以及信任存储库。在本篇中,我们将深入探讨KeyTool 1.6版本及其在数字证书管理中的应用。 首先,让我们理解什么是数字证书。数字证书...

    基于Java的实例源码-密钥管理工具 Keytool-IUI.zip

    Java的密钥管理工具Keytool是Java开发工具集(Java Development Kit, JDK)中的一个重要组件,主要用于管理和操作密钥对、数字证书以及信任存储。在Java应用中,尤其是在涉及到网络通信、数据加密、身份验证等安全性...

    java安全

    Java提供了一个内置的命令行工具`keytool`,用于管理Keystore,包括创建、导入、导出和删除密钥对及证书。 在Java中,OpenSSL是一个常用的开源加密库,提供了丰富的加密算法和协议支持。虽然Java标准库已经包含了大...

Global site tag (gtag.js) - Google Analytics