Tomcat--HTTPS的简单应用

    项目中我们可能会用到HTTPS的访问请求,那么在JavaWeb项目中我们怎么将请求时的http变为https,其实https相较于http就是访问协议的不同,多了一个认证证书;

    那我们就来看看这个证书是怎么创建的:

    其实JDK早已经为我们提供了解决办法: C:\Program Files\Java\jdk1.8.0_131\bin\keytool.exe

    生成证书方式(cmd命令):

HTTPS : 
	JDK证书制造工具: C:\Program Files\Java\jdk1.8.0_131\bin\keytool.exe
	1,cmd代码:
		keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "test.keystore"
		输入密钥库口令:  123456
		姓氏(CN): localhost
		单位名称(OU): gy
		组织名称(O): gy
		城市或区域(L): my
		省/市/自治区(ST): sx
		国家(C): cn
		是否正确: y
		tomcat口令: 123456	
说明:
	密钥 库 密码: 123456
	证书条目密码: 123456
功能:
	创建一个别名为tomcat的证书条目,该条目存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。
	参数说明:
		-genkeypair:生成一对非对称密钥;
		-alias:指定密钥对的别名,该别名是公开的;
		-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
		-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件
注意:
	1."名字与姓氏"应该是域名,若输成了姓名,和真正运行的时候域名不符,会出问题;
	2.再次输入密码,第一次输入的是密钥库(keystore)的密码,第二次输入的是证书条目的密码;
	3.这里所说的证书库和密钥库是等同的(个人观点);

2,cmd查看证书目录:
	keytool -list -keystore test.keystore
	密钥库口令: 123456

	查询到:
		您的密钥库包含 1 个条目
		tomcat, 2018-1-12, PrivateKeyEntry,
		证书指纹 (SHA1): DC:59:14:41:71:20:D0:D3:64:3B:66:C7:47:F2:60:6B:2D:55:25:15
	
3,cmd导出证书文件:
	keytool -export -alias tomcat -file tomcat.jks -keystore test.keystore
	密钥库口令: 123456
	功能:
		将名为 test.keystore 的证书库中别名为 tomcat 的证书条目导出到证书文件 tomcat.crt 中;

4,cmd导入证书的信息:
	keytool -import -keystore test_cacerts -file tomcat.crt
	密钥库口令: 123456
	功能:
		将证书文件 tomcat.crt 导入到名为 test_cacerts 的证书库中;

5,cmd查看证书信息:
	keytool -printcert -file "tomcat.crt"
	密钥库口令: 123456
	功能:
		查看证书文件 tomcat.crt 的信息;
    查看证书库信息:
    keytool -list  -v -keystore test.keystore
    密钥库口令: 123456
    功能:
		查看证书库文件 test.keystore 的信息;
6,cmd删除密钥库中的条目:
	(1),keytool -list -keystore test.keystore
			密钥库口令: 123456
			功能: 删除所有条目;
	(2),keytool -delete -keystore test.keystore -alias tomcat 
			密钥库口令: 123456
			功能: 删除tomcat条目;

    在WEB项目引用的Tomcat启动器的配置文件 server.xml 中修改:


    <!-- 将以前的HTTP配置注释 
    <Connector URIEncoding="UTF-8" 
    	connectionTimeout="20000" 
    	port="8081" 
    	protocol="HTTP/1.1" 
    	redirectPort="8443"/>
    -->

    <!-- 打开HTTPS配置,将生成的证书库绑定进去 -->
    <Connector SSLEnabled="true" clientAuth="false" 
	    protocol="org.apache.coyote.http11.Http11NioProtocol" 
	    keystoreFile="C:/Users/yvdedu.com/test.keystore" certificateKeyAlias="tomcat"
	    keystorePass="123456" maxThreads="150" port="8081" 
	    scheme="https" secure="true" sslProtocol="TLS"/>
 	

启动项目成功,就算配置成功了;

猜你喜欢

转载自my.oschina.net/u/3681868/blog/1606198