当前位置: 首页 > 后端技术 > Python

HTTPS是如何使用python+flask实现的

时间:2023-03-26 00:02:25 Python

摘要:一般情况下,HTTP中请求信息都是明文传输的,很容易被窃听拦截;数据的完整性未经验证,容易被篡改;对方身份未经核实,存在冒名顶替的风险。如何处理这些问题?本文分享自华为云社区《https如何使用python+flask来实现》,原作者:SNHer。1、为什么要用httpshttp一般存在以下问题:请求信息是明文传输的,容易被窃听拦截;数据的完整性未经验证,容易被篡改;对方身份未经核实,存在冒名顶替的风险。HTTPS的优点是什么?1、使用HTTPS对用户和服务器进行认证,确保数据发送到正确的客户端和服务器。2、HTTPS是由SSL+HTTP协议构建的可以进行加密传输和身份认证的网络协议。比http协议更安全,防止数据在传输过程中被窃取或更改,保证数据的完整性。3.HTTPS是目前架构下最安全的方案。虽然它不是绝对安全的,但它大大增加了中间人攻击的成本。2、https中的证书是什么?CA:证书颁发机构类似于国家出入境管理局,给别人发护照;它也类似于国家工商总局,为公司颁发营业执照。它有两个主要特性:CA本身是值得信赖的和国际认可的;它向其信任的申请人颁发证书。与护照一样,要确定您的合法身份,您不能是罪犯或叛乱分子。当然,你需要支付保护费,同时CA可以随时吊销你的证书。CA的证书ca.crt和SSLServer的证书server.crt有什么关系?SSLServer自己生成一对私钥/公钥,server.key/server.pub。server.pub生成一个请求文件server.req。请求文件中包含服务器的一些信息,如域名/申请者/公钥等,服务器将请求文件server.req提交给CA。CA验证无误后,会使用ca.key和请求文件加密生成server.crt。由于ca.key和ca.crt是一对,所以ca.crt可以解密server.crt。在实际应用中:如果SSLClient要验证SSL服务器,则SSL服务器必须将自己的证书server.crt传递给客户端。然后client使用ca.crt验证server.crt的合法性。如果是钓鱼网站,那么CA就不会给他颁发合法的server.crt证书,所以客户端用ca.crt验证就会失败。3.生成证书和密钥shell脚本#!/bin/bashPROJECT_NAME="httpsProject"#生成openssl配置文件.cat>ca_cert.conf<server_cert.conf<client_cert.conf<