一、概念简介
Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。
HTTP超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
HTTPS和HTTP的区别
一、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。
二、HTTPS 协议需要到 CA 申请证书,一般免费证书很少,需要交费。
三、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。
二、自签名(不安全)
网站出现"https证书不受信任"可能是网站使用了自签名证书。自签名证书是一种自己生成的https证书,没有通过合法第三方CA机构审核签发,任何人都可以生成(包括钓鱼网站),很容易被仿冒和伪造,容易受到中间人攻击,存在较大的安全风险,同时浏览器也不信任自签名证书,故部署了自签名证书的网站会出现"https证书不受信任"。(参考:自签名证书的安全隐患),如:
废话不多说,直接看怎么做:
1、新生成一个密钥库
1) D盘根目录新建winning文件夹
2) cmd 找到jdk安装目录/bin如下图所示:
3)输入如下命令后回车
keytool -genkeypair -alias winningSafe -keyalg RSA -validity 36500 -storepass 123456 -keystore d:/winning/winning.keystore -v
-alias winningSafe :证书项的名字,必填项
-keyalg RSA:证书签名算法,tomcat建议RSA
-validity 36500:证书有效期,36500天,即100年
-storepass 123456:密钥库密码,也就是等下要生成的test.keystore的访问密码,妥善保管
-keystore ./test.keystore:要生成的文件的位置,d:/winning/winning.keystore表示存储在当前目录下
-v:该选项会显示比较详细的信息
如上图所示第一项必须写你测试用的网址。至于图中提示的密钥口令,没什么用,就是将来访问那条密钥时要输入的口令,直接回车就行。
2、查看密钥库中的项
执行:keytool -list -keystore d:/winning/winning.keystore -v
3、导出证书
keytool -exportcert -alias winningSafe -file d:/winning/winning.cer -storepass 123456 -keystore d:/winning/winning.keystore -v
-alias winningSafe:要导出的证书的名字,即刚才创建的密钥的名字,即keytool -list时显示的名字
-file d:/data/winning.cer:要导出的证书的存储位置,这里我放在当前目录下
-keystore ./winning.keystore:刚才创建的密钥库的位置
上述所有步骤所生成的2个文件如下
5、copy密钥库文件
将刚才生成的密钥库文件copy到你tomcat的conf目录,跟server.xml同级。注意:这里一定要放在你实际运行的tomcat的conf目录下。
6、修改tomcat配置文件
注意:以上配置是老版本tomcat的配置,从tomcat8.5开始tomcat更改了配置形式,如上配置估计在tomcat10的时候会完全废弃,在tomcat9.0下测试成功的配置如下:
要修改的配置文件是tomcat的server.xml文件。仔细看上面的配置,第一个Connector是默认就有的,这里只是把8080端口改成了公认的80端口,把8443端口改成了公认的443端口。第二个Connector默认是注释掉的,搜索8443就能找到,直接把上述第二个Connector粘贴到server.xml中第一个Connector的下面,方便管理。keystoreFile=”/conf/winning.keystore”就是刚才copy的文件的位置,可以自己改到其他位置。keystorePass=”123456”就是刚才创建密钥库时使用的口令。
7、重新启动tomcat,做收尾工作
如果没启作用,需要重启电脑(服务器)