1、创建证书
Java 中的 keytool.exe (位于 JDKBin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。
每一个证书库是一个文件组成,它有访问密码,在首次创建时,它会自动生成证书库,并要求指定访问证书库的密码。
在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。这些信息包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,它们的意思是:
CN(Common Name - 名字与姓氏)
OU(Organization Unit - 组织单位名称)
O(Organization - 组织名称)
L(Locality - 城市或区域名称)
ST(State - 州或省份名称)
C(Country - 国家名称)
可以采用交互式让工具提示输入以上信息,也可以采用参数,如:-dname “CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx”来自动创建。
如下所示一句采用交互式创建一个证书,指定证书库为 BocsoftKeyLib,创建别名为 TestCertification 的一条证书,它指定用 RSA 算法生成,且指定密钥长度为 1024,证书有效期为 1 年:
C:JDK1.4BinKeyStore>keytool -genkey -alias TestCertification -keyalg RSA -keysize 1024 -keystore BocsoftKeyLib -validity 365
2.证书的操作
1)证书的显示
使用如下命令: keytool –list –keystore BocsoftKeyLib 将显示 BocsoftKeyLib 证书库的的所有证书列表:
将证书导出到证书文件
使用命令:keytool -export -alias TestCertification -file TC.cer -keystore BocsoftKeyLib 将把证书库 BocsoftKeyLib 中的别名为 TestCertification 的证书导出到 TC.cer 证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。
导出的证书文件是以二进制编码文件,无法用文本编辑器正确显示,可以加上 -rfc参数以一种可打印的编者编码输出。 如:
keytool -export -alias TestCertification -file TC.cer -keystore BocsoftKeyLib -storepass 123456 –rfc
这个命令在命令行中指定了证书库的访问密码,同时指定以可查看编码的方式输出。
2)通过证书文件查看证书的信息
通过命令: keytool –printcert –file TC.cer 可以查看证书文件的信息。 也可以在 Windows 资源管理器中双击产生的证书文件直接查看。
3)证书条目的删除
keytool的命令行参数 -delete 可以删除密钥库中的条目,如: keytool -delete -alias TestCertification -keystore BocsoftKeyLib,这条命令将 BocsoftKeyLib 库中的 TestCertification 这一条证书删除了。
4)证书条目口令的修改
使用 -keypasswd 参数,如:keytool –keypasswd –alias TestCertification –keystore BocsoftKeyLib,可以以交互的方式修改 BocsoftKeyLib 证书库中的条目为 TestCertification 的证书。
Keytool –keypasswd –alias TestCertification –keypass 654321 –new 123456 –storepass 888888 –keystore BocsoftKeyLib 这一行命令以非交互式的方式修改库中别名为 TestCertification 的证书的密码为新密码 654321,行中的 123456 是指该条证书的原密码, 888888 是指证书库的密码。
分享到:
相关推荐
Java代码生成数字证书涉及到几个关键概念和技术,包括Java的密钥和证书管理、RSA加密算法以及非交互式证书创建。在此,我们将深入探讨这些主题,以便理解如何在Java环境中生成和使用数字证书。 1. **数字证书**:...
这份"Java 数字签名、数字证书生成源码"的压缩包提供了实现这些功能的代码示例,对于理解和应用Java安全机制非常有帮助。 数字签名是一种用于验证电子信息完整性和发送者身份的技术。它结合了非对称加密算法(如RSA...
在Java编程环境中,生成数字证书是一项关键的安全技术,主要用于数据加密、身份验证和签名等应用场景。数字证书通常包含了公钥和私钥对,以及证书持有者的相关信息,这些信息经过认证机构(CA)的签名,确保了证书的...
在这个"Java 数字签名、数字证书生成源码"压缩包中,包含了实现这些功能的源代码,对于理解Java安全编程和实际应用具有很高的价值。 1. **数字签名** 数字签名是一种用于验证电子文档完整性和发送者身份的技术。在...
生成Java数字证书通常涉及以下步骤: 1. 创建密钥对:使用`KeyPairGenerator`类生成公钥和私钥。常见的算法有RSA和DSA。 2. 创建自签名证书:使用`CertificateSigningRequest`(CSR)或者直接使用`KeyPair`创建`X509...
本资源包含的Java代码工具包提供了生成数字签名和数字证书的源码,这有助于开发者快速理解和实现相关功能。 首先,让我们了解一下数字签名。数字签名是一种用于验证电子文档完整性和发送者身份的技术。它利用非对称...
在这个Java源码包中,我们可能找到了用于生成数字签名和数字证书的相关代码,这对于理解和实践Java的安全编程至关重要。 数字签名是一种用于验证电子信息完整性的方法,它结合了非对称加密技术。在Java中,我们可以...
Java实现RSA加密解密,数字证书生成与验证,模拟两个端通信,AB双方通信,客户端A把需要传输的文件MD5值用自己的私钥生成数字签名,连同明文用服务端B的公钥加密后传送给服务端B,服务端B用私钥解密验证数字签名,并计算...
它们验证申请者的身份,并在确认无误后,用CA的私钥为申请者生成一个数字证书,包含申请者的公钥和身份信息。用户可以通过检查证书上的CA签名来确认公钥的合法性。 4. **Java中的KeyPairGenerator和KeyStore类**:...
JAVA源码Java数字签名,数字证书生成源码
java 生成 数字证书
### Java 获取数字证书信息 在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和...
总之,Java数字证书和数字签名是构建安全网络应用的核心技术,这个源码模块提供了一种实际的实现方式,可以帮助开发者更好地理解和应用这些概念。通过深入学习和实践,你可以提升在网络安全领域的专业技能,为构建更...
在实际应用中,这些源码示例可能包括了生成和验证数字签名以及数字证书的具体代码,对于学习和理解Java安全机制非常有帮助。通过阅读和运行这些源码,开发者可以更好地掌握如何在实际项目中应用这些安全功能。 总之...
这里我们将深入探讨基于Java的数字签名和数字证书生成的相关知识点。 首先,我们要理解数字签名的概念。数字签名是一种用于验证电子文档完整性和发送者身份的技术,它结合了公钥加密和哈希函数。在Java中,我们可以...
在Java中,证书通常是以X.509标准格式表示的数字证书,用于验证网络实体的身份。这些证书包含公钥和身份信息,并由受信任的证书颁发机构(CA)签名。对于自签名证书,我们可以在本地生成,而无需第三方CA。 生成...
本文将深入探讨如何使用Java语言结合RSA算法,通过数字证书实现文件的加密和解密操作。RSA是一种非对称加密算法,它的核心在于一对密钥:公钥和私钥。公钥可以公开给任何人,用于加密数据;而私钥必须保密,用于解密...