java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料
保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。
生成证书
证书是服务器端和客户端安全通信的凭证,本教程用了JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。中文官方网站:http://www.verisign.com/cn/
1、用JDK自带的keytool生成证书
view
plaincopy
命令:keytool -genkey -validity 36000 -alias smalllove -keyalg RSA
- -keystore D:/keys/smallkey
此命令是生成一个证书,其中 smalllove 是证书别名【注:这里的d盘下的keys文件夹需手动建立,而这个smallkey,则是生成为文件,也可加上后缀,即smallkey.keystore】
-genkey表示生成密钥
-validity指定证书有效期,这里是36000天
(不写会用默认期限)
-alias指定别名,这里是www.zlex.org
-keyalg指定算法,这里是RSA
-keystore指定存储位置,这里是d:\zlex.keystore
此命令的执行如图所示:
其中名字与姓氏这一最好写你的 域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名。注意不要写IP。
当然,如果觉得麻烦,默认使用localhost也可以。
2.生成自签名证书
光有keyStore文件是不够的,还需要证书文件,证书才是直接提供给外界使用的公钥凭证。
导出证书:
view
plaincopy
命令:C:\>keytool -export -file d:/keys/small.crt -alias smalllove -keystore d:/keys/smallkey
.cer后缀
view
plaincopy
命令:C:\>keytool -export -file d:/keys/small.cer -alias smalllove -keystore d:/keys/smallkey
如图:
密码为上步设置的密码。作用是把上面的keystore生成为.crt或.cer文件。
3、把证书导入到客户端JDK中。
view
plaincopy
命令:keytool -import -keystore C:\Java\jdk1.6.0_21\lib\security\cacerts -file D:/keys/small.crt -alias smalllove
此命令是把证书导入到JDK中。【注:jdk的安装路径不能有空格,比如jdk安装在c:/Program Files/java/.....或者别的有空格的路径的文件夹下】
如图:
到此证书导入成功。
注意:在此步有可能出现如下错误
view
plaincopy
C:\>keytool -import -keystore C:\Java\jdk1.6.0_21\lib\security\cacerts -file D:/keys/small.crt -alias smalllove
输入keystore密码:
keytool错误: java.io.IOException: Keystore was tampered with, or password was incorrect
该错误的解决方法是,把%JAVA_HOME%\lib\security下的cacerts文件删除掉,在执行。或者执行changeit命令。
因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。
后续会有更多的精彩的内容分享给大家。
支付宝扫一扫
微信扫一扫
