企业做推广哪些网站比较好,兰州有做百度网站的吗,wordpress 分类下的文章,赣州广播电视台文章目录 1. HTTPS 是什么#xff1f;2. 加密 是什么#xff1f;3. HTTPS 的工作过程3.1 引入对称加密3.2 引入非对称加密3.3 中间人攻击3.4 引入证书 4. Tomecat4.1 tomcat 的作用 1. HTTPS 是什么#xff1f;
HTTPS也是⼀个应用层协议#xff0c;是在 HTTP … 文章目录 1. HTTPS 是什么2. 加密 是什么3. HTTPS 的工作过程3.1 引入对称加密3.2 引入非对称加密3.3 中间人攻击3.4 引入证书 4. Tomecat4.1 tomcat 的作用 1. HTTPS 是什么
HTTPS也是⼀个应用层协议是在 HTTP 协议的基础上引⼊了⼀个加密层 HTTP 协议内容都是按照文本的方式明文传输的这就导致在传输过程中出现⼀些被篡改的情况 比如臭名昭著的 “运营商劫持” 不止运营商可以劫持其他的 黑客 也可以用类似的手段进行劫持来窃取用户隐私信息或者篡改内容
在互联网上明文传输是比较危险的事情 HTTPS 就是在 HTTP 的基础上进行了加密进⼀步的来保证用户的信息安全
2. “加密” 是什么
加密就是把 明文 (要传输的信息)进行一系列变换生成 密文 解密就是把 密文 再进行一系列变换还原成 明文
加密解密 到如今已经发展成⼀个独力的学科: 密码学 而密码学的奠基⼈也正是计算机科学的祖师爷之⼀艾伦·⻨席森·图灵 明文 密钥 密文 密文 密钥 密文
在密码学中使用密钥加密有两种主要的方式
对称加密加密和解密使用的密钥 是用一个密钥 设 密钥为 key 明文 key 密文 密文 key 明文非对称加密有两个密钥 这两个密钥一个称为“公钥”一个称为“私钥” 公钥就是可以公开的私钥相反 明文 公钥 密文 密文 私钥 明文 或者 明文 私钥 密文 密文 公钥 明文 用一个要是加密就用另一个钥匙解密
3. HTTPS 的工作过程
既然要保证数据安全就需要进行 “加密” 网络传输中不再直接传输明文了而是加密之后的 “密文” 加密的方式有很多但是整体可以分成两⼤类对称加密 和 非对称加密
3.1 引入对称加密 客户端使用密钥进行对称加密 服务器拿着同一个密钥进行解密 由于黑客手里没有密钥就无法获取到加密之前的内容
这里只是“比较安全”网络中不存在“绝对安全” 但是服务器不只是和一个客户端通信而是和很多客户端通信
这些客户端使用的 对称密钥 是相同的吗
很明显必须要求每个客户端的密钥都不相同彼此之间才不知道对方的密钥是什么 此时要求每个客户端对于的密钥都不同 现在就需要每个客户端载荷服务器建立连接的时候就把密钥给生成出来 涉及到一些随机数机制在里面保证给个客户端生成的密钥都不同 客户端再把自己的密钥通过网络传输给服务器 但是万一密钥被黑客截获了呢 此时黑客就知道了通信的密钥 后续传输的加缪数据黑客就可以很轻松的进行解密
如何让密钥更安全的到达服务器呢 这个时候就需要针对密钥进行加密
这里我们就引入非对称加密
3.2 引入非对称加密
为了解决上述安全传输密钥的问题引入了“非对称加密”
非对称加密中有一对密钥公钥、私钥 可以使用公钥加密私钥解密 或者使用私钥加密公钥解密 服务器生成一对公钥和私钥 服务器把公钥返回给客户端 服务器自身把私钥藏好
但是这个时候黑客也能公钥
客户端仍然生成对称密钥 使用服务器的公钥对对称密钥进行加密 得到了密钥的密文
如果黑客拿到加密后的 对称密钥 是无能为了的公钥加密需要私钥解密 私钥只有 服务器 采用黑客手里没有
服务器手里持有着私钥服务器就很容易的能解密出对称密钥是什么 于是服务器就得到了原始的对称密钥 接下来客户端和服务器就使用这个对称密钥加密传输即可 既然已经引入了非对称加密为什么还需要引入对称加密呢? 直接使用非对称加密来完成所有业务数据的加密传输即可
进行非对称加密/解密运算成本是比较高的运算速度也是比较低的 对称加密运算成本低速度快
使用非对称加密只是用来进行这种关键环节(传输密)(一次性的工作体积也不大)成本就比较可控 后续要传输大量的业务数据都使用效率更高的对称加密比较友好的做法
如果业务数据都使用非对称加密整体的传输效率就会大打折扣了
引入安全性引入加密也势必会影响到传输效率我们也是希望让这样的影响能尽可能降到最低
3.3 中间人攻击
上述 对称加密 非对称加密这样的过程中还存在一个严重的漏洞黑客如果利用好这个漏洞仍然可以获取到原始的明文数据 这个漏洞就是“中间人攻击” 客户端 经过 入侵的设备向服务器询问密钥 然后服务区就提前生成好了一对 公钥pub1和 私钥pri1
服务器就返回 pub1 但是黑客自己生产了一对非对称密钥其中公钥pub1私钥pub2
这个时候黑客入侵的设备就返回了 pub2黑客替换了响应的公钥
客户端不知道 pub2 是黑客的一位就是服务器的于是就使用 pub2 针对堆成密钥进行加密了
黑客收到加密的对称密钥之后 因为这个密钥是使用 pub2 加密的黑客就可以使用 pri2 进行解密 黑客解密之后拿到对称密钥 并且使用服务器刚才的 pub2 重新对 对称密钥进行加密进一步的发送给服务器 重新使用 pub1 加密就是为了不让服务器发现其中的端倪
服务器收到数据之后使用 pri1 解密这个解密是完全能够成功的服务器也收到了对称密钥
这个时候服务器就返回
3.4 引入证书
那么如何解决上述的“中间人攻击呢”
之所以能进行中间人攻击关键点在于客户端没有“分辨能力” 客户端不知道当前这个密钥是不是黑客伪造的
这里的“分辨”不能靠“自证” 引入第三方的可以被大家都信任的“公证机构” 公证机构说这个歌密钥是正确的不是被伪造的我们就是可以信任的 网站的开发人员搭建这个服务器的时候就会生成好 公钥私钥每个客户端都不一样
服务器就会向公正机构提出申请提交一些材料域名、公钥、厂商…
公正机构就会对这些材料进行审核审核通过就会给服务器颁发一个 “证书” 这是计算机 的证书也就是一段结构化的数据这段数据就会包含一些重要的信息比如数字签名
这个时候就会把证书返回给服务器服务器也会保存好证书
客户端访问服务器就会直接询问证书
服务器就会向客户端返回证书
客户端拿到证书也就拿到了证书的公钥 客户端就需要验证这个公钥是否是服务器崔楚的公钥 这个过程就称为“证书的校验” 校验的核心机制就是“数字签名”数组全面就是被加密后的校验和 拿着你数据的每个字节带入公式就能算出一个结果数字称为校验和 把这个数据和校验和一起发送给对方 对方再按照同样的方式再算一遍校验和 如果对方自己算的校验和 和 收到的校验和一致就认为数据在传输过程中没有改变过
颁发证书的时候公证机构就会针对整数值的各个属性计算出一个校验和 并且针对这个校验和进行加密就得到了数字签名 这个加密也是非对称加密 公正机构自己生成一对公钥和私钥 公正机构就会自己持有私钥 公钥就会发布给各个客户端设备 往往公钥都还是内置到系统中的安装了操作系统就会自带公证机构的公钥
公正机构就会使用自己的私钥对校验和进行加密得到数字签名
此时客户端拿到了数字签名就可以通过系统内置的公正机构的公钥进行解密了就得到了最初的校验和
客户端再 重新 计算一遍 这里的校验和和解密出来的校验和进行对比 如果校验和一直就可以认为证书没有得篡改过 公钥就是可信的服务器原始的公钥 上述情况之下黑客就无法对证书内容进行篡改即使篡改了也很容易被发现
当黑客收到证书之后如果直接修改里面的公钥替换成自己的客户端在进行证书校验的时候就会发现校验和不一致了 客户端就可以认为是篡改过了客户端这边往往会弹出一些对话框来警告用户粗拿在安全风险
那么黑客替换公钥只是能否自己替换到数字签名自己算一个呢 这个是不能的校验和好算针对校验和加密需要使用 公证机构 的私钥才能进行的 黑客没有这个私钥如果黑客拿自己的私钥加密客户端也就无法使用公证机构的公钥解密了 公证机构的公钥是客户端系统自带的黑客也无法替换
结合上述过程证书就是可信的通过了校验就说明公钥就是服务器原始的公钥了
黑客是否能自己也申请一个证书完全替换掉服务器的证书呢? 行不通的申请证书需要提交资料 其中就有网站的主域名认证机构自然就会认证这个域名是否是你所有的
4. Tomecat
Tomecat 是 HTTP 服务器
使用 HTTP 进行通信就需要涉及到 HTTP 客户端 和 HTTP 服务器
HTTP 客户端浏览器、Postman、爬虫程序
HTTP 服务器可以自己写代码实现基于 TCP socket 但是实际上可以直接使用别人写好的 HTTP 服务器或者基于这些服务器进行 二次 开发
Tomecat 就是 java 中最流行的 HTTP 服务器
Tomecat 是一个绿色的软件只要解压岁就可以使用
bin 目录下放的是 tomcat 的一些相关可执行脚本 .bat 就是 Windows 上的 批处理程序 .sh 就是 Linex 上的 shell 脚本
双击点开 startup.bat就可以启动 Tomcat 最终的 Tomcat 就是一个控制台程序 tomcat 闪退了怎么办
如果闪退了最关键的是要能看到 “报错信息”
把 startup.bat 拖到 cmd 中运行如果闪退大概率 cmd 中能显示出出错信息 端口被占用了 (已经启动 tomcat, 再启动第二个) 有的人电脑上可能装了其他的程序也占用了 8080 (windows自带的 HTTP 服务器IIS) 环境变量问题 (可能是 tomcat 找不到 jdk也可能是 tomcat 找不到自己所在的目录) 提示是缺哪个环境变量,就配置上即可 Tomcat 启动之后就可以通过浏览器来访问 Tomcat 的欢迎界面 Tomcat 的日志在控制台中可能是乱码 原因 Tomcat 默认使用的字符集是 utf8 而 Windows cmd 的字符集是 gbk conf 中放的是 Tomcat 的配置文件 一个程序的功能是非常丰富的 我们一般就是通过配置文件的方式来进行设置的 tomcat 的配置主要是通过 xml 的方式来提供的 logs 日志 调试一个程序的最重要的手段
后续自己写的程序代码中打印的日志就可以在上述目录中看到
日志就是通过 System.out.println 等方式打印的一些字符
我们平时写代码使会用调试器打断点来调试 但是服务器不适合不能打断点停下来因为这样其他的客户端就无法响应 而且经常也会涉及到“概率性问题”有的时候100 个请求才会触发一次 问题
使用调试器本质上是
更好的理解程序的执行该过程更好的还珠到某些临时结构摸个变量的中间的值
这两点都是可以通过日志替代的
使用日志调试每次添加/改动日志都需要重新编译运行 webapps 里面放的即使若干个 webapp网站 webapps 中每个目录都是一个 webapp 就包含了一个网站的后端代码和前端代码
这个目录中还能见到 .war 压缩包文件.war 包 使用 tomcat 发布程序的一种方式 写好的一个网站就可以打包成 war 包拷贝到 tomcat 的 webapp 里 tomcat 就会自动对 war 进行解压缩从而完成网站的部署和加载
war 包是自己写的代码生成的结果目前这里还没有
4.1 tomcat 的作用 这就是 tomcat 的重要作用 可以让浏览器通过网络来访问到一个 html 页面 直接双击打开这个做法是让个浏览器打开一个本地文件和上面有本质的区别
但是目前电脑上的 tomcat 部署的网页别人是无法直接访问到的NAT 问题
但是如果使用的是云服务器是可以的 静态页面页面内容是固定的
动态页面根据用户输入的不同内容显示出不同的界面
一个静态假面就是一个单纯的 html 动态界面就要复杂一些这就需要在背后让程序员来编写一些代码来描述一些逻辑 通过大量的代码复杂的逻辑来实现
tomcat 就可以支持静态页面也能支持动态页面 tomcat 提供了一组 api封装了 HTTP 协议可以让程序员更方便的去编写动态界面 这组 api 称为 Servlet