Tomcat配置Https协议

来源:互联网 发布:char占几个字节 java 编辑:程序博客网 时间:2024/05/21 10:27

参考文章:

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"
功能:
创建一个别名为tomcat的证书,该证书存放在名为tomcat.keystore的密钥库中,若tomcat.keystore密钥库不存在则创建。
参数说明:
-genkeypair:生成一对非对称密钥;
-alias:指定密钥对的别名,该别名是公开的;
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".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覆盖。

如下:


添加代码如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"                clientAuth="false" sslProtocol="TLS"                 keystoreFile="conf/tomcat.keystore" keystorePass="skysky"/>
在server.xml文件中配置了一个端口是8443的加密连接器,浏览器访问8443端口的连接器时,将会以加密的方式来访问web服务器,这个连接器收到浏览器的请求后,将会向浏览器出示一份数字证书,浏览器再用数字证书里面的公钥来加密数据,keystoreFile="conf/tomcat.keystore" 用来指明密钥库文件的所在路径,服务器从密钥库中提取证书时需要密码,keystorePass="skysky"指明密钥库的访问密码。
三、访问加密地址

使用"https://localhost:8443/"访问8443的加密连接器

1、安装数字证书

为了让浏览器信任我们生成的数字证书,需要将数字证书安装到浏览器中,以IE浏览器为例进行证书安装说明,安装步骤如下:


点击查看证书:


点击安装证书:



证书安装成功后,重启IE浏览器使用"https://localhost:8443/"访问8443的加密连接器,此时浏览器就不再提示证书错误了,如下图所示:

  

2、删除数字证书

操作步骤如下:工具----->Internet选项


删除之后重启浏览器即可


0 0
原创粉丝点击