距离上一次提笔写博客已经过去5个月了!工作固然是比较忙,但更多地其实是自己变成越来越懒惰了。人都是有惰性的,由懒惰到勤奋难,由勤奋到懒惰却是非常简单。笔者时常提醒自己不忘初心,毕业3年就已经差不多忘了自己从何出发、为何出发、终点在哪里!对于自己的定位仍然是一名程序员,目标仍然是成为优秀的架构师!
言归正传,本篇文章主要是介绍如果配置一套基于的Https
的web
环境,文章以实际操作为重点,并附带罗列一些理论基础,所以并不是从零开始。在阅读本篇文章之前,读者需要具备以下知识:
- TLS/SSL协议
- tomcat
- 数字证书和CA
本文的主要内容包括:
- Https概要介绍
- 自签名证书
- tomcat中配置https
Https基础
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。(来自百度百科)
为什么需要Https
在讲为什么需要https之前,应该讲讲http协议本身有什么缺陷。
- http协议是不安全的。http协议报文在网络传输过程中全部都是明文。用户上网浏览过、提交过的内容,所有在后台工作的人,比如路由器的所有者、网线途径路线的不明意图者、省市运营商、运营商骨干网、跨运营商网关等都能够查看。
- http协议没有提供身份认证机制,其无法保证用户访问能直达目标网站,而没有被中间人攻击和劫持。
https协议主要就是为了解决这些问题而诞生的。https主要有以下特性:
- 传输数据加密。使用https协议传输的报文都是经过加密的,就是报文被中间人拦截,如果不知道加密算法和密钥也无法知晓数据内容。
- 身份认证。使用https协议的站点都需要申请数字证书,这个证书就是站点的“身份证”,如果服务站点没有出示有效的证书,那么浏览器就会对用户发出警告。当然,除了服务端认证之外,服务端也可以反向认证用户的合法性,也可以同时进行这两种认证,称为双向认证。
SSL数字证书
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。SSL是由Netscape公司研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。正常的SSL证书都是由受认证的证书颁发机构——我们称之为CA(Certificate Authority)机构来颁发,针对企业与个人的不同,可申请的证书的类型也不同,价格也不同。
Https配置
虽然诸如google等互联网大佬都在呼吁摒弃不安全的http协议,直接使用https协