如何获取client.truststoree文件

最近在研究Mina的开发,通信的时候需要数据加密,而且mina本身支持SSLFilter过滤器,所以可以采用SSL加密的方式对数据进行加密。
在进行加密之前,我们需要使用keytool(这个存在于C:\Program Files\Java\jdk1.7.0_65\bin目录下)产生创建keystore和truststore文件。接下来我会为你介绍生成密钥的方法。
1.打开cmd命令提示符(一定要以管理员身份运行,否则会出现的错误),转到keytool所在路径
下,我的是在C:\Program Files\Java\jdk1.7.0_65\bin;
keytool -genkeypair -alias certificatekey -keyalg RSA -validity 7 - keystore keystore.jks
然后输入密码(123456),这个密码一定要记住。最后输入以下的信息,如下图:
3.导出凭证文件&
keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfcert.cer
这时会让你输入刚才的密码(我的是:123456),然后它会提示你保存到了selfcert.cer 文件中,在jd k/bin目录下我们可以找到这个文件。结果如下图:
4.将凭证文件&导入到truststore文件&
5.到此为止使用keytool创建keystore和truststore的工作已经完成了,接下来你可以在jdk/bin目录下找到 我们所需要的keystore.jks和truststore.jks文件
PS:在接下来的几天内,我会更新Mina高性能网络的开发,有兴趣的同学可以关注一下。
阅读(...) 评论()keytool生成keystore、truststore、证书以及SSL单向认证在服务端tomcat和客户端的配置
1&SSL单向认证概念
  当客户端(服务请求方)向服务端(服务提供方)发起请求时,服务器端需要向客户端提供认证。服务端需要生成一个keystore和一个服务器密钥对儿(公钥和私钥),客户端需要生成一个truststore,然后导入服务端的公钥证书。
2&keystore以及服务器密钥对儿的生成
keytool&-genkeypair&-alias&certificatekey&-keyalg&RSA&-validity&365&-keystore&shfqkeystore.jks
这条命令会在生成keystore后接着生成一个密钥对儿。RSA是非对称密钥算法,也可以改为&keytool支持的其他密钥算法,365代表的是证书的有效期,可以自己指定,shfqkeystore.jks是keystroe的名称,也可以自己指定。打开cmd命令行,输入:
keytool&-genkeypair&-alias&certificatekey&-keyalg&RSA&-validity&365&-keystore&shfqkeystore.jks
会提示输入keystore的密码,接着会提示输入名字等信息,如下图:
补充:输入&certificatekey&的主密码,是指生成服务端证书的私钥。服务端私钥如果和keystore的相同的话,直接按回车。建议直接按回车,即服务端私钥和keystore的密码相同。如果两者的密码不相同的话在服务端tomcat&server.xml中配置完毕以后启动tomcat会报一个UnrecoverableKeyException:&Cannot&recover&key的异常(后面会介绍服务端&tomcat&server.xml&的配置的)。
keytool会把生成的keystore文件默认保存到C:\Users\lenovo路径下(用户目录下的计算机名称下)接下来生成的所有文件也都保存到此处。
3&验证新生成的keystor文件以及证书信息
可以执行下面的命令:
keytool&-list&-v&-keystore&shfqkeystore.jks
会显示出以下信息,如图:
4&导出公钥证书
下面的命令可以导出自签公钥证书:
keytool&-export&-alias&certificatekey&-keystore&shfqkeystore.jks&-rfc&-file&shfqcert.cer
其中shfqcert.cer是导出证书的名称,可以随便起个名字,shfqkeystore.jks是2中生成的keystore&文件。
执行上面的命令会要求输入shfqkeystore的密码,会显示以下信息,如下图。
5&Truststore的生成以及公钥证书的导入
把4生成的公钥证书shfqcert.cer导入到truststore中
Keytool&-import&-alias&certificatekey&-file&shfqcert.cer&-keystore&
shfqtruststore.jks
shfqcert.cer是4导出的公钥证书,shfqtruststore.jks可以随便起,是生成的truststore的文件名。这条命令首先会生成一个truststore,然后导入4生成的公钥证书shfqcert.cer。
执行keytool&-import&-alias&certificatekey&-file&shfqcert.cer&&-keystore&shfqtruststore.jks后,首先会提示输入truststore的密码,如下图:
6&验证5生成的truststore文件
keytool&-list&-v&-keystore&shfqtruststore.jks
shfqtruststore.jks是5生成的truststore文件名。
到此为止,keystore、truststore、公钥证书都已生成完毕。
7&配置服务端的tomcat
找到tomcat安装路径下的conf路径下的server.xml文件
打开server.xml,找到
&&&&&Connector&port=&8443&&protocol=&HTTP/1.1&& &SSLEnabled=&true&
&&&&&&&&&&&&&&&maxThreads=&150&&scheme=&https&&secure=&true&
&&&&&&&&&&&&&&&clientAuth=&false&&sslProtocol=&TLS&&/&
这样一段注释,在这段注释下面添加如下一段代码:
&Connector&SSLEnabled=&true&&acceptCount=&100&&clientAuth=&false&
disableUploadTimeout=&true&&
enableLookups=&false&&maxThreads=&25&
&&&&port=&8443&&keystoreFile=&D:\developTools\apache-tomcat-idm\tomcat.keystore&& keystorePass=&111111&
&&&&protocol=&org.apache.coyote.http11.Http11NioProtocol&& scheme=&https&
secure=&true&&sslProtocol=&TLS&&/&
其中clientAuth=”false”表示是SSL单向认证,即服务端认证,port=”8443”是https的访问端口,keystoreFile=&D:\developTools\apache-tomcat-idm\tomcat.keystore&是第一步中生成的keystore的保存路径,keystorePass=&111111&是第一步生成的keystore的密码。
到此服务器端已经配置完毕,为了验证是否已经配置正确,我们可以在浏览器中进行验证。首先启动tomcat,然后在浏览器地址输入栏中输入:
如果看到如下截图的一个页面则表示服务端已经配置成功了。
之所以会出现“该网站的安全证书不受信任!”的警告是因为证书是自己签发的而不是一个权威的CA机构签发的。 最后还得在hosts文件中配置自己的IP地址,把IP地址映射为一个common name,这个common name就是您在第2步中生成服务器证书时候的“您的名字与姓氏是什么?”输入的名字。
8&客户端配置
在客户端配置服务端的地址时要注意:比如&s &&
这个地址协议格式是https主机名是shifengqiang,这个shifengqiang就是在第2步中生成服务器端证书时要求输入的“您的名字与姓氏是什么?”名字。8443是https协议默认的端口。
在客户端向服务器端同步代码前面加入这样一段代码:
System.setProperty(&java.protocol.handler.pkgs&,& &com.sun.net.ssl.internal.www.protocol&);
&&&&System.setProperty(&java.protocol.handler.pkgs&,& &com.ibm.net.ssl.internal.www.protocol&);
String&trustStorePath&=&
&&&“D:\developTools\apache-tomcat-idm\shfqtruststore.jks”;
String&trustStorePassword&=&“client”;
System.setProperty(&javax.net.ssl.trustStore&,& trustStorePath);
System.setProperty(&javax.net.ssl.trustStorePassword&,& trustStorePassword);
其中trustStorePath&是truststore的路径,trustStorePassword&是truststore的密码。至此单向SSL配置完毕。
参考链接:/blog/1885356
在配置的过程中参考了网上大量的链接,有些链接没有做记录恕不一一列举。
本分类共有文章3篇,更多信息详见
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";Android(61)
/blog/1885356
keytool在OS X中经常显示为乱码,它在中文OS X中输出GB2312编码,所以要将terminal的默认编码更改成GB2312或者中文(ECU)
JSSE使用Truststore和Keystore文件来提供客户端和服务器之间的安全数据传输。keytool是一个工具可以用来创建包含公钥和密钥的的keystore文件,并且利用keystore文件来创建只包含公钥的truststore文件。在本文中,我们学习如何通过下面的5步简单的创建truststore和keystore文件:&
&&& 生成一个含有一个私钥的keystore文件&
&&& 验证新生成的keystor而文件&
&&& 导出凭证文件&
&&& 把认凭证件导入到truststore文件&
&&& 验证新创建的truststore文件&
第一步 - 生成一个含有一个私钥的keystore文件&
Java的Keytool工具可以把密钥和认证保存到keystore文件。 如果在windows上,keytool命令被放到Java的bin目录下(例如C:\Program Files\Java\jdk1.6.0_12)。如果是mac上是放在/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands目录下。&
执行下列命令来生成keystore&
keytool -genkeypair -alias certificatekey -keyalg RSA -validity 7 -keystore keystore.jks
一旦执行了命令,你会被要求输入密码,这里我们输入“123456”。输入密码以后,需要输入一些key的详细信息,如下图:&
第二步 – 验证新生成的keystor而文件&
keytool -list -v -keystore keystore.jks&
执行上面的命令后,你会看到key的详细信息:&
第三步 - 导出凭证文件&
在这一步,你可以导出自我签署凭证或是Verisign或其他的认证机构的商业凭证的。这里只说导出自我签署的凭证:&
通过执行下面的命令把自我签署的凭证保存到 “selfsignedcert.cer”文件&
keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer
执行上面的命令,会要求你输入密码,就是上面生成keystore的输入的密码“123456”,&
生成的cer文件内容如下:&
第四步 – 把认凭证件导入到truststore文件&
执行下面的命令&
keytool -import -alias certificatekey -file selfsignedcert.cer
-keystore truststore.jks
执行命令后,会要求输入密码,同样是keystore的密码“123456”。&
第五步 – 验证新创建的truststore文件&
执行下面的命令&
keytool -list -v -keystore truststore.jks
执行上面的命令会看到如下的内容&
参考连接:/?p=953
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:138694次
积分:1884
积分:1884
排名:第16098名
原创:42篇
转载:76篇
评论:34条
(1)(1)(4)(1)(1)(1)(3)(1)(4)(1)(2)(5)(3)(3)(1)(3)(4)(8)(5)(9)(6)(4)(22)(10)(1)(1)(4)(9)}

我要回帖

更多关于 truststore 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信