SSL协议基于一种不对称加密技术,加密算法用AES,分为公钥密钥,这里就不详细讲述了,具体内容感兴趣的可以看看加密以及安全方面的书籍。
使用HTTPS访问时,可以双向认证,最重要的是发送的数据使用了AES进行了加密,别人拦截了没有密钥内容是无法破解的。
今天试了一下如何在tomcat中配置HTTPS访问。
第一步:
生成安全访问的证书。
命令行下执行:keytool -genkey -alias tomcat -keyalg RSA -keystore c:\tomcat.keystore
然后按提示输入一些密码等信息:
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: tomcat
您的组织单位名称是什么?
[Unknown]: tomcat
您的组织名称是什么?
[Unknown]: tomcat
您所在的城市或区域名称是什么?
[Unknown]: bj
您所在的州或省份名称是什么?
[Unknown]: bj
该单位的两字母国家代码是什么
[Unknown]: cn
CN=tomcat, OU=tomcat, O=tomcat, L=bj, ST=bj, C=cn 正确吗?
[否]: y
输入<tomcat>的主密码
(如果和 keystore 密码相同,按回车):
输入完成后,会在C盘下生成tomcat.keystore文件,这个文件的位置不做要求。
注:上述命令中的蓝色部分可以不输入,这样会默认生成一个.keystore的证书文件。
第二步
配置tomcat,使其支持https连接。
打开tomcat目录下conf/server.xml文件,之前的连接部分的最后
添加redirectPort="443",然后找到以下节点:
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the
connector should be using the OpenSSL style configuration
described in the APR documentation -->
<!--
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
将<connectore节点的注释去掉,443修改为你要使用的端口。节点中添加两个属性:keystoreFile="C:/tomcat.keystore" keystorePass="123456"
其中,keystoreFile指的是你第一步生成的证书文件位置,keystorePass是你在生成证书时所输入的密码。
这样就可以通过https协议访问WEB应用了。
原文:http://blog.csdn.net/liu00614/article/details/22918531