`
sharron5
  • 浏览: 18820 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA keytool数字证书生成及应用

阅读更多
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代码生成数字证书涉及到几个关键概念和技术,包括...以上就是使用Java代码生成数字证书的基本原理和过程,以及如何不通过keytool工具进行操作。通过理解这些概念,您可以根据需要创建自定义的证书生成解决方案。

    命令行keytool使用 证书DN生成数字证书容器 空格

    总结来说,通过`keytool`命令行工具,我们可以生成并管理数字证书,包括创建具有特定DN的证书,并结合`ConventPFX.java`这样的工具类,将证书导出为PFX格式,方便在不同环境下的使用。在进行这些操作时,务必确保...

    keytool生成证书

    Keytool是Java提供的一款工具,主要用于管理密钥对(公钥和私钥)以及数字证书,它允许用户创建、存储和管理这些安全组件。在本主题中,我们将深入探讨如何使用keytool生成证书及其相关概念。 首先,让我们了解什么...

    Keytool与数字证书

    ### Keytool与数字证书 #### 一、Keytool简介及基本操作 **Keytool** 是 Java 开发工具包(JDK)中的一个实用程序,用于管理密钥库(key stores),其中包括私钥(private keys)及其对应的公钥证书(public key ...

    java keytool安全证书学习

    Java Keytool是一个强大的工具,主要用于管理和操作密钥对和数字证书,这些是Java安全框架中的核心元素。在Java Secure Socket Extension (JSSE) 中,它扮演着创建和管理KeyStore和TrustStore的角色,以实现SSL/TLS...

    KeyTool 工具生成X.509证书

    KeyTool工具生成X.509证书是Java平台自带的一个命令行工具,它主要用于管理和操作密钥对(公钥和私钥)以及数字证书。在本文中,我们将深入探讨KeyTool的基本用法、X.509证书的概念,以及如何使用KeyTool生成这种...

    利用keytool生成数字证书

    利用keytool生成数字证书。.bat文件。配置好java环境变量后,直接运行即可。非常简单。

    https证书生成工具(openssl和jre(自带keytool)) for windows.rar

    - 然后,将CSR提交给证书颁发机构(CA),申请正式的数字证书。 - CA审核通过后,会返回签署后的证书。 - 最后,使用keytool将CA返回的证书导入到证书库,并配置服务器使用这个证书。 4. **Windows环境下的安装...

    PDF数字签名(ITEXT+keytool)

    在本项目中,我们使用了Java的ITEXT库来处理PDF文档,以及keytool工具来生成数字证书。以下是关于这些知识点的详细说明: 1. **PDF数字签名**:PDF数字签名是一种用于验证PDF文档未经修改的机制。它使用非对称加密...

    Java&keytool生成RSA密钥

    在这个过程中,了解如何管理和操作密钥库(keystore)至关重要,因为它通常包含了应用程序的数字证书,用于确保服务器的身份验证和客户端的信任。Keytool支持多种类型的密钥库,如JKS(Java KeyStore)和PKCS12,...

    java获取数字证书信息

    ### Java 获取数字证书信息 在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和...

    java keytool使用例子

    Java Keytool是Java开发工具包(JDK)中自带的一个命令行工具,主要用于管理数字证书、密钥对以及信任库。这个工具对于开发者和系统管理员来说非常重要,因为它们在进行安全通信,尤其是HTTPS、SSL/TLS连接时起着...

    java生成CA证书

    它们验证申请者的身份,并在确认无误后,用CA的私钥为申请者生成一个数字证书,包含申请者的公钥和身份信息。用户可以通过检查证书上的CA签名来确认公钥的合法性。 4. **Java中的KeyPairGenerator和KeyStore类**:...

    [重要]Java代码验证keytool工具生成的密钥对

    Keytool是Java Development Kit(JDK)自带的一个命令行工具,用于管理公钥/私钥对和数字证书,这些在网络安全中扮演着至关重要的角色。 在Java环境中,keytool工具允许开发者生成、存储和管理密钥对。生成密钥对的...

    java生成证书 包括openssl

    Java 生成证书是指通过 Java 的 keytool 工具和 OpenSSL 库生成数字证书的过程。在 HTTPS 环境下,证书是必不可少的组件, play a crucial role in ensuring the security and authenticity of online transactions....

    java keytool

    - **用途**:将已签名数字证书导入密钥库。 - **示例**: ```bash keytool -import -alias mykey -file mycert.cer -keystore mykeystore.jks -storepass changeme ``` #### 五、示例操作 - **生成 Keystore**:...

    Java KeyTool使用

    Java KeyTool 是 Java 安全套件中的一部分,用于创建、管理和维护数字证书。下面是使用 KeyTool 的详细指南,包括创建密钥对、导出证书、将证书导入 Java 信任证书库等内容。 生成密钥对 KeyTool 提供了生成密钥对...

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

    Java的Keytool是一个重要的工具,它用于管理Java的密钥对和数字证书,这些是进行安全网络通信的基础。Keytool的全名是“Java Key Tool”,它被集成在Java Development Kit (JDK) 中,提供了生成、存储和管理密钥对、...

Global site tag (gtag.js) - Google Analytics