Java 中生成数字证书也很简单的。
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生成CA证书涉及到了几个关键概念,包括公钥加密、私钥解密、数字签名以及证书颁发机构(CA)。在Java中,我们可以使用内置的Java Cryptography Extension (JCE)库来实现这些功能。以下是对这个主题的详细阐述: ...
在Java编程环境中,生成数字证书是一项关键的安全技术,主要用于数据加密、身份验证和签名等应用场景。数字证书通常包含了公钥和私钥对,以及证书持有者的相关信息,这些信息经过认证机构(CA)的签名,确保了证书的...
### Java 获取数字证书信息 在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和...
java 生成 数字证书
Java实现RSA加密解密,数字证书生成与验证,模拟两个端通信,AB双方通信,客户端A把需要传输的文件MD5值用自己的私钥生成数字签名,连同明文用服务端B的公钥加密后传送给服务端B,服务端B用私钥解密验证数字签名,并计算...
在这个"Java 数字签名、数字证书生成源码"压缩包中,包含了实现这些功能的源代码,对于理解Java安全编程和实际应用具有很高的价值。 1. **数字签名** 数字签名是一种用于验证电子文档完整性和发送者身份的技术。在...
Java 数字签名和数字证书是网络安全领域中的重要概念,它们在确保数据的完整性和来源的可信性方面扮演着关键角色。这份"Java 数字签名、数字证书生成源码"的压缩包提供了实现这些功能的代码示例,对于理解和应用Java...
Java 数字证书操作是网络安全领域中的重要组成部分,主要用于身份验证和数据加密,确保网络通信的安全。在Java中,我们可以利用Java Cryptography Extension (JCE) 和 Java Secure Socket Extension (JSSE) 这些强大...
Java中的数字证书的生成及维护方法,非常适合初学者参考.
3. CA验证申请者身份后,用其私钥签署CSR,生成数字证书。 4. 将证书分发给申请者。 这个源码包可能包含了以下组件: - 用于生成密钥对的`KeyPairGenerator`示例,如RSA或DSA算法。 - 实现`Signature`类的签名生成...
Java生成X509证书是Java开发者在进行安全通信时常用的一种技术,X509是一种数字证书的标准格式,广泛应用于SSL/TLS协议、PKI(公钥基础设施)系统等。在Java中,通常通过使用Bouncy Castle库(BC)来实现X509证书的...
本文将深入探讨如何使用Java语言结合RSA算法,通过数字证书实现文件的加密和解密操作。RSA是一种非对称加密算法,它的核心在于一对密钥:公钥和私钥。公钥可以公开给任何人,用于加密数据;而私钥必须保密,用于解密...
本资源包含的Java代码工具包提供了生成数字签名和数字证书的源码,这有助于开发者快速理解和实现相关功能。 首先,让我们了解一下数字签名。数字签名是一种用于验证电子文档完整性和发送者身份的技术。它利用非对称...
在 Java 中,可以使用 KeyTool 工具来生成数字证书。KeyTool 是一个命令行工具,用于生成和管理数字证书。使用 KeyTool 可以生成自签名证书、私钥证书、CSR 证书等。 Java 解析证书 在 Java 中,可以使用 java....
在Java中,证书通常是以X.509标准格式表示的数字证书,用于验证网络实体的身份。这些证书包含公钥和身份信息,并由受信任的证书颁发机构(CA)签名。对于自签名证书,我们可以在本地生成,而无需第三方CA。 生成...
本篇文章将深入探讨Java中如何实现安全通信、生成和使用数字证书。 首先,我们了解两个基础概念:消息摘要和消息验证码。消息摘要是一种算法,通过该算法对原始数据进行处理,生成一个固定长度的摘要值,类似于数据...
Java 生成证书是指通过 Java 的 keytool 工具和 OpenSSL 库生成数字证书的过程。在 HTTPS 环境下,证书是必不可少的组件, play a crucial role in ensuring the security and authenticity of online transactions....
5. **证书处理**:`java.security.cert.CertificateFactory`用于解析和生成X.509证书,这是最常用的数字证书格式。 6. **密钥库操作**:`keytool`命令行工具或Java API(如`KeyStore`类)用于管理密钥库,包括导入、...