目录

一、理论

1.SSL

2.HTTPS协议和HTTP协议的区别

3.https证书配置

4.tomcat强制使用https

二、实验

1.https证书配置过程

 2.tomcat强制使用https

三、总结


一、理论

1.SSL

(1)概念

SSL是网络加密传输协议,是支持在网络服务器(主机)与网页浏览器(客户端)间建立加密连接的标准技术。当网站安装SSL数字证书之后,可通过https访问网站,浏览器地址栏显示“锁的标识”,点击锁型标识显示单位/个人认证信息,这种证书也是类似于驾驶证、护照和营业执照的电子副本,因为配置在服务器上,也称为SSL服务器证书。

(2)优势

提升企业形象当企业网站安装了一个权威证书签发机构签发的ssl证书,能够突显网站的专业性,而且还能提升网站访问者的信任度,大大提升企业的形象和可信度。
提升网站访问者的信任度若你的网站需要使用个人信息来登录,那就必须要安装ssl证书,访问者看到他们的个人信息能够被很好地保护,肯定会加深对网站的信任。
吸引更多的顾客当线销售网站安装了ssl证书之后,那么肯定会吸引更多的顾客前来购买并且付款,因为对于他们来说,ssl证书也算是一重保障。

2.HTTPS协议和HTTP协议的区别

(1)http
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。http的连接很简单,是无状态的 。

(2)https

https协议需要到ca申请证书,一般免费证书很少,需要交费。

(3)不同点
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议, 要比http协议安全。

3.https证书配置

(1)环境准备
为了成功配置https,你需要具备以下环境:
java jdk
tomcat

(2)JKS格式证书生成

JAVA中有自带的证书生成工具keytool,使用keytool来生成tomcat的证书

keytool -genkeypair -alias 'tomcat' -keyalg 'RSA' -keystore '/usr/local/tomcat/conf/tomcat.keystore'

命令解释:
alias: 别名 这里我起名testKey
keyalg: 证书算法,RSA
validity:证书有效时间,10年
keystore:证书生成的目标路径和文件名

(3)修改tomcat主配置文件server.xml

去掉注释,并将keystoreFile和keystorePass处替换成自己的证书路径和生成证书时的口令即可.
<Connector port="8443" protocol="HTTP/1.1"

              maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

              clientAuth="false" sslProtocol="TLS" keystoreFile="本机的keystore路径" keystorePass="生成证书时的口令"  />

4.tomcat强制使用https

Tomcat既支持使用http协议,又支持使用https协议。https协议是一种不安全的传输协议,内容会以明文的形式进行传输,因此,在生产环境中,我们通常设置强制tomcat使用https协议,当有人使用http协议访问8080端口时,将该访问请求强制性重定向到8443端口上去。
要实现Tomcat对http协议的强制性重定向,我们需要打开conf目录下的web.xml文件,在文件的下方,添加如下内容:

<login-config>
	<auth-method>CLIENT-CERT</auth-method>
	<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
	<web-resource-collection >
		<web-resource-name >SSL</web-resource-name>
		<url-pattern>/*</url-pattern>
	</web-resource-collection>
	<user-data-constraint>
		<transport-guarantee>CONFIDENTIAL</transport-guarantee>
	</user-data-constraint>
</security-constraint>  

二、实验

1.https证书配置过程

(1)JKS格式证书生成
① 打开终端或者命令行输入命令,回车,然后输入信息,其中秘钥库口令和秘要口令最好输入同一个,并且记下这个口令,其他按需填

 (2)在tomcat中配置https
把keystore证书上传到tomcat服务器上(tomcat在本地可以不移动),并记下证书所在路径。

/usr/local/tomcat/conf/tomcat.keystore

 
 ② 配置tomcat使用该证书,并开放8443端口,支持https。打开tomcat的主配置文件,找到8080端口的connector元素,在下面添加如下内容:

③ 关闭并重启tomcat

 监听端口

其中keystoreFile参数指定的是证书文件的位置,而keystorePass参数指定的是生成该证书的密码。tomcat就支持使用https了,并且监听端口为8443。重启Tomcat,发现Tomcat在启动后会监听8443端口,如下所示:

用浏览器进行访问

 2.tomcat强制使用https

(1)配置conf目录下的web.xml文件

(2)测试

启Tomcat服务,再次尝试使用HTTP协议访问Tomcat的8080端口,就会被重定向到8443端口,使用https协议。

三、总结

http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议, 要比http协议安全。

JAVA中有自带的证书生成工具keytool,用来生成tomcat的证书。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐