Tomcat配置HTTPS的文章到处都有,过程相对来说也简单。今天就来手动配置一个tomcat的https。
首先我们先来了解一下,http和https的区别。否则的话配置https的意义又在何处呢?先来一段简介
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
吧啦吧啦看了这么多,其实说白了就是https是加密过的,http没有加密。一般来说,加密意味着安全,但是效率也相对较低一点。而且https还需要申请证书,要购买。所以tomcat默认会使用http协议。对于一般的业务来说足够了,但是相对于银行,酒店这种涉及到信息安全方面来说就需要设置https防止信息泄露了。接下来进入今天的主题
一,创建证书
因为证书是要花钱买的,所以就自己用JDK自带的keytool工具生成证书;如果以后真正在生产环境中使用肯定要去证书提供商去购买的。
用JDK自带的keytool工具生成证书:
keytool -genkey -alias httpsKey -keyalg RSA -keystore d:/keys/httpsKey.keystore
如下图所示:

以上命令将生产一对非对称密钥和自我签名的证书d:\tomcat.keystore
注意:“名字与姓氏”应该是域名,如果输成了姓名,和真正运行的时候域名不符,会出问题
二,配置Tomcat服务器
打开tomcat目录下的conf文件夹,打开server.xml。找到如下代码。放开注释后修改如下

这里我们只要修改的是
keystoreFile:刚刚生成的证书所在文件路径。
keystorePass:证书密码
注意:有的人喜欢把证书路径直接写死,其实这样不好,因为当我们的tomcat移动到其他服务器上时。如果证书没跟着过去,会找不到证书而启动报错的。所以这里最好写相对路径。根路径是tomcat根目录。也就是把证书直接放到ssl文件夹就好了。
这样,就完成tomcat的https配置了
三,修改系统hosts文件
相信稍微了解一点DNS服务器知识的都知道我接下来要做什么了。是的,你猜对了。这一步是要修改本机的dns服务器解析,这样我们在浏览器上面输入刚刚的域名时,才能够找到我们主机运行的tomcat。打开C:\Windows\System32\drivers\etc这个文件夹,找到hosts这个文件,记得使用管理员身份打开。修改如下内容

完成后打开运行tomcat。浏览器输入https://fuxian.com。如下图所示,则代表成功完成

github地址:https://github.com/luofuxian/-tomcat-HTTPS




