Java中的keytool.exe可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中,证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。
每一个证书库是一个文件组成,它有访问密码,在首次创建时,它会自动生成证书库,并要求指定访问证书库的密码。
在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。这些信息包括 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"来自动创建。
一:创建keystore及一条证书信息:
进入windows命令行窗口,输入:
(一)交互式:
keytool -genkey -alias testCA -keyalg RSA -keysize 1024 -keystore chap8.keystore -validity 3650
或
(二)非交互式
keytool -genkey -dname “CN=test,OU=test,O=test,L=bj,ST=bj,C=CN” -alias testCA -keyalg RSA -keysize 1024 -keystore chap8.keystore
-keypass 111111 -storepass 111111 -validity 3650
值得注意的是:
在”(一)交互式“中最后要求输入‘testCA’主密码时,直接回车就可以了。
在”(二)非交互式“中, keypass 与 storepass 必须一致。
否则整合JBOSS会抛出异常。
二:整合JBOSS(jboss-5.1.0.GA)
(一)将产生的chap8.keystore放到JbossHOME\server\default\conf下
(二)打开JbossHOME\server\default\deploy\jbossweb.sar\server.xml,修改如下配置:
<!-- SSL/TLS Connector configuration using the admin devl guide keystore
<Connector port="8443" address="${jboss.bind.address}"
maxThreads="100" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
scheme="https" secure="true" clientAuth="false"
keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore"
keystorePass="rmi+ssl" sslProtocol = "TLS" />
-->
<Connector protocol="HTTP/1.1" SSLEnabled="true"
port="8443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
keystoreFile="${jboss.server.home.dir}/conf/chap8.keystore"
keystorePass="111111" sslProtocol = "TLS" />
此时基本配置已经完成。
在myeclipse中新建一个WEB工程keytest,启动JBOSS,浏览器地址栏输入http://localhost:8080/keytest 或 https://localhost:8443/keytest都可访问。会提示安装证书。
三:将HTTP转为HTTPS
打开keytest工程目录下web.xml文件,添加如下配置:
<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<user-data-constraint>
<description>Protection should be CONFIDENTIAL</description>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
web-resource-name可随意命名
url-pattern为需要保护资源URL
transport-guarantee可选值:
NONE:对所用的通讯协议不加限制
INTEGRAL:意味着服务器和客户端之间的数据必须以某种方式发送,而且在传送中不能改变
CONFIDENTIAL:这意味着传输的数据必须是加密的数据
分享到:
相关推荐
Java代码生成数字证书涉及到几个关键概念和技术,包括...以上就是使用Java代码生成数字证书的基本原理和过程,以及如何不通过keytool工具进行操作。通过理解这些概念,您可以根据需要创建自定义的证书生成解决方案。
总结来说,通过`keytool`命令行工具,我们可以生成并管理数字证书,包括创建具有特定DN的证书,并结合`ConventPFX.java`这样的工具类,将证书导出为PFX格式,方便在不同环境下的使用。在进行这些操作时,务必确保...
Keytool是Java提供的一款工具,主要用于管理密钥对(公钥和私钥)以及数字证书,它允许用户创建、存储和管理这些安全组件。在本主题中,我们将深入探讨如何使用keytool生成证书及其相关概念。 首先,让我们了解什么...
### Keytool与数字证书 #### 一、Keytool简介及基本操作 **Keytool** 是 Java 开发工具包(JDK)中的一个实用程序,用于管理密钥库(key stores),其中包括私钥(private keys)及其对应的公钥证书(public key ...
Java Keytool是一个强大的工具,主要用于管理和操作密钥对和数字证书,这些是Java安全框架中的核心元素。在Java Secure Socket Extension (JSSE) 中,它扮演着创建和管理KeyStore和TrustStore的角色,以实现SSL/TLS...
KeyTool工具生成X.509证书是Java平台自带的一个命令行工具,它主要用于管理和操作密钥对(公钥和私钥)以及数字证书。在本文中,我们将深入探讨KeyTool的基本用法、X.509证书的概念,以及如何使用KeyTool生成这种...
利用keytool生成数字证书。.bat文件。配置好java环境变量后,直接运行即可。非常简单。
- 然后,将CSR提交给证书颁发机构(CA),申请正式的数字证书。 - CA审核通过后,会返回签署后的证书。 - 最后,使用keytool将CA返回的证书导入到证书库,并配置服务器使用这个证书。 4. **Windows环境下的安装...
在本项目中,我们使用了Java的ITEXT库来处理PDF文档,以及keytool工具来生成数字证书。以下是关于这些知识点的详细说明: 1. **PDF数字签名**:PDF数字签名是一种用于验证PDF文档未经修改的机制。它使用非对称加密...
在这个过程中,了解如何管理和操作密钥库(keystore)至关重要,因为它通常包含了应用程序的数字证书,用于确保服务器的身份验证和客户端的信任。Keytool支持多种类型的密钥库,如JKS(Java KeyStore)和PKCS12,...
### Java 获取数字证书信息 在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和...
Java Keytool是Java开发工具包(JDK)中自带的一个命令行工具,主要用于管理数字证书、密钥对以及信任库。这个工具对于开发者和系统管理员来说非常重要,因为它们在进行安全通信,尤其是HTTPS、SSL/TLS连接时起着...
它们验证申请者的身份,并在确认无误后,用CA的私钥为申请者生成一个数字证书,包含申请者的公钥和身份信息。用户可以通过检查证书上的CA签名来确认公钥的合法性。 4. **Java中的KeyPairGenerator和KeyStore类**:...
Keytool是Java Development Kit(JDK)自带的一个命令行工具,用于管理公钥/私钥对和数字证书,这些在网络安全中扮演着至关重要的角色。 在Java环境中,keytool工具允许开发者生成、存储和管理密钥对。生成密钥对的...
Java 生成证书是指通过 Java 的 keytool 工具和 OpenSSL 库生成数字证书的过程。在 HTTPS 环境下,证书是必不可少的组件, play a crucial role in ensuring the security and authenticity of online transactions....
- **用途**:将已签名数字证书导入密钥库。 - **示例**: ```bash keytool -import -alias mykey -file mycert.cer -keystore mykeystore.jks -storepass changeme ``` #### 五、示例操作 - **生成 Keystore**:...
Java KeyTool 是 Java 安全套件中的一部分,用于创建、管理和维护数字证书。下面是使用 KeyTool 的详细指南,包括创建密钥对、导出证书、将证书导入 Java 信任证书库等内容。 生成密钥对 KeyTool 提供了生成密钥对...
Java的Keytool是一个重要的工具,它用于管理Java的密钥对和数字证书,这些是进行安全网络通信的基础。Keytool的全名是“Java Key Tool”,它被集成在Java Development Kit (JDK) 中,提供了生成、存储和管理密钥对、...