参考文章:
http://www.cnblogs.com/xdp-gacl/p/3744053.html
http://www.cnblogs.com/xdp-gacl/p/3750965.html
一、Https
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道。采用https的服务器必须从CA (Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。
Tomcat服务器启动时候会启动多个Connector(连接器),而Tomcat服务器的连接器又分为加密连接器和非加密连机器。Tomcat通过配置加密连接器,实现Https协议。
本文利用java提供的keytool生成数字证书,本地模拟实现https的服务器配置。
二、生成Tomcat服务器的数字证书
keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\keytool.exe。
1、创建证书
创建证书主要是使用" -genkeypair",该命令的可用参数如下:
生成一个名称为tomcat的证书:
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "tomcat.keystore"
功能:
注意:
1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等
2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填
执行完成,在操作系统目录下生成了一个“tomcat.keystore”的文件,如下:
2、查看密钥库里面的证书
keytool -list -keystore tomcat.keystore
结果如下:
二、配置https连接器
1、将生成的tomcat.keystore密钥库文件拷贝到Tomcat服务器的conf目录下。如下图所示:
2、修改server.xml文件,配置https连接器
注意:如果手动开启tomcat,直接修改conf文件中server.xml文件即可。如果通过eclipse启动tomcat,需修改eclipse中Servers(eclipse配置tomcat后才有)的server.xml文件。
原因:eclipse启动tomcat会覆盖本地tomcat的配置文件,即tomcat安装文件下server.xml会被eclipse中的server.xml覆盖。
如下:
添加代码如下:
在server.xml文件中配置了一个端口是8443的加密连接器,浏览器访问8443端口的连接器时,将会以加密的方式来访问web服务器,这个连接器收到浏览器的请求后,将会向浏览器出示一份数字证书,浏览器再用数字证书里面的公钥来加密数据,keystoreFile="conf/tomcat.keystore" 用来指明密钥库文件的所在路径,服务器从密钥库中提取证书时需要密码,keystorePass="skysky"指明密钥库的访问密码。
使用"https://localhost:8443/"访问8443的加密连接器
1、安装数字证书
为了让浏览器信任我们生成的数字证书,需要将数字证书安装到浏览器中,以IE浏览器为例进行证书安装说明,安装步骤如下:
点击查看证书:
点击安装证书:
证书安装成功后,重启IE浏览器,使用"https://localhost:8443/"访问8443的加密连接器,此时浏览器就不再提示证书错误了,如下图所示:
2、删除数字证书操作步骤如下:工具----->Internet选项
删除之后重启浏览器即可