1、HTTPS简介HTTPS,是以安全为目标的,是以安全为目标的HTTP通道,通道,简单讲是简单讲是HTTP的安全版。即的安全版。即HTTP下下加入加入SSL层,层,HTTPS的安全基础是的安全基础是SSL,因此加密的详细内容就需要,因此加密的详细内容就需要SSL什么是什么是HTTPS1数字加密数字加密2密码:对文本进行编码密码:对文本进行编码密钥:改变密码行为的数字化参数密钥:改变密码行为的数字化参数对称密钥加密系统:编对称密钥加密系统:编/解码使用相同密钥的算法解码使用相同密钥的算法非对称密钥加密系统:编非对称密钥加密系统:编/解码使用不同密钥的算解码使用不同密钥的算法法数字签名:用来验证报文
2、未被伪造或篡改的校验和数字签名:用来验证报文未被伪造或篡改的校验和数字证书:由一个可信的组织验证和签发的识别信数字证书:由一个可信的组织验证和签发的识别信息息加密、解密相关知加密、解密相关知识识 3HTTPS架架构构4HTTPS数字签名非对称加减密数字证书SSL/TSL数字摘要对称加减密SSL/TLS协议协议5SSL:(:(SecureSocketLayer,安全套接字层),安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。种协议层。SSL通过互相认证、使用数字签名确保完整性、通过互相认证、使用数字签名确保完整性、使用
3、加密确保私密性,以实现客户端和服务器之间的安全使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:通讯。该协议由两层组成:SSL记录协议和记录协议和SSL握手协议。握手协议。TLS:(TransportLayerSecurity,传输层安全协,传输层安全协议议),用于两个应用程序之间提供保密性和数据完整性。,用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:该协议由两层组成:TLS记录协议和记录协议和TLS握手协议。握手协议。SSL是是Netscape开发的专门用户保护开发的专门用户保护Web通讯的,通讯的,目前版本为目前版本为3.0。最新版本的。最新版本的T
4、LS1.0是是IETF(工程任务组工程任务组)制定的一种新的协议,它建立在制定的一种新的协议,它建立在SSL3.0协议规范之上,协议规范之上,是是SSL3.0的后续版本。两者差别极小,可以理解为的后续版本。两者差别极小,可以理解为SSL3.1。SSL/TLS协议作用:协议作用:6认证用户和服务器,确保数据发送到正确的客户机认证用户和服务器,确保数据发送到正确的客户机和服务器;和服务器;加密数据以防止数据中途被窃取;加密数据以防止数据中途被窃取;维护数据的完整性,确保数据在传输过程中不被改维护数据的完整性,确保数据在传输过程中不被改变。变。SSL、TLS的握手过程的握手过程 71.客户端发起请求
5、3.客户端验证证书5.客户端发送数据.。2.服务器回应4.生成密钥.。a.支持的协议版本b.支持的加密算法c.产生一个随机数a.确定的加密协议版本及加密算法b.服务器证书c.服务器随机数a.随机数(使用证书中公钥加密)b.编码改变通知c.握手结束通知a.编码改变通知b.握手结束通知对称加密数据传输简化版握手过程简化版握手过程81、客户端发送请求,服务器返回公钥给客户端;、客户端发送请求,服务器返回公钥给客户端;2、客户端生成对称加密秘钥,用公钥对其进行加密后,返、客户端生成对称加密秘钥,用公钥对其进行加密后,返回给服务器;回给服务器;3、服务器收到后,利用私钥解开得到对称加密秘钥,保存;、服务
6、器收到后,利用私钥解开得到对称加密秘钥,保存;4、之后的交互都使用对称加密后的数据进行交互。、之后的交互都使用对称加密后的数据进行交互。简化版握手过程简化版握手过程9数字证书数字证书10为什么要有数字证书为什么要有数字证书数字证书的颁发过程数字证书的颁发过程用户首先产生自己的密钥对,并将公共密钥及部分个用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含
7、然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息签名信息(根证书私钥签名根证书私钥签名)。用户就可以使用自己的数字。用户就可以使用自己的数字证书进行相关的各种活动。数字证书由独立的证书发行机证书进行相关的各种活动。数字证书由独立的证书发行机构发布,数字证书各不相同,每种证书可提供不同级别的构发布,数字证书各不相同,每种证书可提供不同级别的可信度。可信度。证书包含哪些内容证书包含哪些内容HTTPS相关配置相关配置111.为服务器生成证书C:Program Files(x86)Javajd
8、k1.7.0_76binkeytool-genkey-v-alias tomcat-keyalg RSA-keystore D:hometomcat.keystore-validity 365002.为客户端生成证书keytool-genkey-v-alias mykey-keyalg RSA-storetype PKCS12-keystore D:homemykey.p12双击mykey.p12文件,即可将证书导入至浏览器(客户端)。3.让服务器信任客户端证书keytool-export-alias mykey-keystore D:homemykey.p12-storetype PKCS1
9、2-storepass password-rfc-file D:homemykey.cer 下一步,是将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:keytool-import-v-file D:homemykey.cer-keystore D:hometomcat.keystore 通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:keytool-list-keystore D:hometomcat.keystore(tomcat为你设置服务器端的证书名)。HTTPS相关配置相关配置124.让客户端信任服务器证书keytool-
10、keystore D:hometomcat.keystore-export-alias tomcat-file D:hometomcat.cer(tomcat为你设置服务器端的证书名)。5.配置Tomcat服务器6.测试在浏览器中输入:https:/localhost:8443/,会弹出选择客户端证书界面,点击“确定”,会进入tomcat主页,地址栏后会有“锁”图标,表示本次会话已经通过HTTPS双向验证,接下来的会话过程中所传输的信息都已经过SSL信息加密。HTTPS和和HTTP的区别的区别 131.HTTP的的URL以以http:/开头,而开头,而HTTPS的的URL以以https:/开头开头2.HTTP是不安全的,而是不安全的,而HTTPS是安全的是安全的3.HTTP标准端口是标准端口是80,而,而HTTPS的标准端口是的标准端口是4435.HTTP无法加密,而无法加密,而HTTPS对传输的数据进行加对传输的数据进行加密密6.HTTP无需证书,而无需证书,而HTTPS需要需要CA机构机构wosign的颁发的的颁发的SSL证书证书THANKS