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代码生成cer证书文件,然后可以通过代码获取 不通过keytool工具。生成密钥对。使用公钥加密。
利用keytool生成数字证书。.bat文件。配置好java环境变量后,直接运行即可。非常简单。
用keytool生成数字证书,利用itext生成签名pdf,完整工程代码。
tomcat如何为应用添加数字签名证书,仅仅在单机测试环境使用
详细介绍使用keytool生成证书,使用java进行证书检测,消息提取...
Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书 Java 数字签名、数字证书的相关实例。 关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,...
Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书 Java 数字签名、数字证书的相关实例。 关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,...
keytool 生成p12自签名数字证书
对Java代码进行签名KeyStore Explorer提供了以JAR和J2ME“ MIDlet”形式对Java应用程序进行数字签名的功能。广泛的格式支持KeyStore Explorer支持多种KeyStore,密钥对,私钥和证书格式,并可在它们之间进行转换。请...
Java版QQ签到源码欧盟数字 COVID 证书网关 • • • • • • 关于 该存储库包含欧盟数字 COVID 证书网关 (DGCG) 的源代码。 DGCG 用于在所有国家后端服务器之间共享验证和验证信息。 通过使用 DGCG,促进了后端到...