Web服务器群集:Tomcat配置https证书
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议, 要比http协议安全。JAVA中有自带的证书生成工具keytool,用来生成tomcat的证书。
目录
一、理论
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的证书。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)