简单生活 发表于 2015-1-18 11:17:02

JAVA编程:keytool天生keystore、truststore、证书和SSL单向认证在服务端tomcat和客户真个设置 ...

到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。1SSL单向认证观点

  当客户端(服务哀求方)向服务端(服务供应方)倡议哀求时,服务器端必要向客户端供应认证。服务端必要天生一个keystore和一个服务器密钥对儿(公钥和私钥),客户端必要天生一个truststore,然后导进服务真个公钥证书。
2keystore和服务器密钥对儿的天生

keytool-genkeypair-aliascertificatekey-keyalgRSA-validity365-keystoreshfqkeystore.jks
这条命令会在天生keystore后接着天生一个密钥对儿。RSA长短对称密钥算法,也能够改成keytool撑持的其他密钥算法,365代表的是证书的无效期,能够本人指定,shfqkeystore.jks是keystroe的称号,也能够本人指定。翻开cmd命令行,输出:
keytool-genkeypair-aliascertificatekey-keyalgRSA-validity365-keystoreshfqkeystore.jks
会提醒输出keystore的暗码,接着会提醒输出名字等信息,以下图:

增补:输出<certificatekey>的主暗码,是指天生服务端证书的私钥。服务端私钥假如和keystore的不异的话,间接按回车。倡议间接按回车,即服务端私钥和keystore的暗码不异。假如二者的暗码不不异的话在服务端tomcatserver.xml中设置终了今后启动tomcat会报一个UnrecoverableKeyException:Cannotrecoverkey的非常(前面会先容服务端tomcatserver.xml的设置的)。
keytool会把天生的keystore文件默许保留到C:Userslenovo路径下(用户目次下的盘算机称号下)接上去天生的一切文件也都保留到此处。
3考证重生成的keystor文件和证手札息

能够实行上面的命令:
keytool-list-v-keystoreshfqkeystore.jks
会显现出以下信息,如图:

4导出公钥证书

上面的命令能够导出自签公钥证书:
keytool-export-aliascertificatekey-keystoreshfqkeystore.jks-rfc-fileshfqcert.cer
个中shfqcert.cer是导出证书的称号,能够任意起个名字,shfqkeystore.jks是2中天生的keystore文件。
实行下面的命令会请求输出shfqkeystore的暗码,会显现以下信息,以下图。

5Truststore的天生和公钥证书的导进

把4天生的公钥证书shfqcert.cer导进到truststore中
Keytool-import-aliascertificatekey-fileshfqcert.cer-keystore
shfqtruststore.jks
shfqcert.cer是4导出的公钥证书,shfqtruststore.jks能够任意起,是天生的truststore的文件名。这条命令起首会天生一个truststore,然后导进4天生的公钥证书shfqcert.cer。
实行keytool-import-aliascertificatekey-fileshfqcert.cer-keystoreshfqtruststore.jks后,起首会提醒输出truststore的暗码,以下图:

6考证5天生的truststore文件

keytool-list-v-keystoreshfqtruststore.jks
shfqtruststore.jks是5天生的truststore文件名。

到此为止,keystore、truststore、公钥证书都已天生终了。
7设置服务真个tomcat

找到tomcat安装路径下的conf路径下的server.xml文件
翻开server.xml,找到
<!--
<Connectorport="8443"protocol="HTTP/1.1"SSLEnabled="true"
maxThreads="150"scheme="https"secure="true"
clientAuth="false"sslProtocol="TLS"/>
-->
如许一段正文,在这段正文上面增加以下一段代码:
<ConnectorSSLEnabled="true"acceptCount="100"clientAuth="false"
disableUploadTimeout="true"
enableLookups="false"maxThreads="25"
port="8443"keystoreFile="D:developToolsapache-tomcat-idmtomcat.keystore"keystorePass="111111"
protocol="org.apache.coyote.http11.Http11NioProtocol"scheme="https"
secure="true"sslProtocol="TLS"/>
个中clientAuth=”false”暗示是SSL单向认证,即服务端认证,port=”8443”是https的会见端口,keystoreFile="D:developToolsapache-tomcat-idmtomcat.keystore"是第一步中天生的keystore的保留路径,keystorePass="111111"是第一步天生的keystore的暗码。
到此服务器端已设置终了,为了考证是不是已设置准确,我们能够在扫瞄器中举行考证。起首启动tomcat,然后在扫瞄器地点输出栏中输出:https://localhost:8443
假如看到以下截图的一个页面则暗示服务端已设置乐成了。


比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。

爱飞 发表于 2015-1-20 19:16:58

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

山那边是海 发表于 2015-1-28 05:38:47

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。

精灵巫婆 发表于 2015-1-29 05:12:38

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

金色的骷髅 发表于 2015-2-2 21:42:13

是一种使网页(Web Page)产生生动活泼画面的语言

再现理想 发表于 2015-2-4 16:29:31

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

活着的死人 发表于 2015-2-4 16:29:47

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

第二个灵魂 发表于 2015-2-10 04:04:08

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

灵魂腐蚀 发表于 2015-2-27 04:12:15

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

变相怪杰 发表于 2015-3-8 19:42:35

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

兰色精灵 发表于 2015-3-11 18:37:39

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

仓酷云 发表于 2015-3-19 07:31:34

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
页: [1]
查看完整版本: JAVA编程:keytool天生keystore、truststore、证书和SSL单向认证在服务端tomcat和客户真个设置 ...