用python在两台机器之间建立TLS连接,实现加密传输。

本文介绍了如何使用Python建立TLS/SSL连接,实现加密传输。首先讲解了TLS/SSL协议的基本知识,然后详细阐述了生成自签名证书的步骤,包括使用OpenSSL工具创建CA证书、服务器证书和密钥。最后,展示了如何在Python中导入证书文件,成功实现在两台机器间的加密数据传输。
摘要由CSDN通过智能技术生成

2.1 TLS/SSL 基本知识

SSL(Secure Sockets Layer 安全套接层)协议,及其继任者TLS(Transport Layer Security传输层安全)协议,是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密,用于保障网络数据传输安全,利用数据加密技术,确保数据在网络传输过程中不会被截取及窃听。
要建立TSL/SSL连接则需要证书文件及其密钥文件,这些证书就是起到了加密的作用,每一次连接都需要通过验证这些证书来进一步确定是否可以继续传输。证书文件可以是由受信任的证书颁发机构(CA机构),验证服务器身份后颁发,或者通过openssl工具生成自签名的证书。在这里笔者选择了使用openssl生成自签名的证书,并掌握了openssl工具的相关使用。

2.2 实现思路
1.写出TLS加密传输代码:基于无加密传输的服务器和客户端代码结构,导入了ssl包,并对代码进行了修改。
2.生成自签名证书文件:实现加密传输需要已认证的证书文件,这里笔者使用了openssl工具生成自签名证书文件。
3.导入证书文件,实现加密传输:加载后证书文件后,在两台电脑或者本机上实现加密传输数据。

2.3 具体操作及遇到的问题

2.3.1 TLS连接的代码:

服务端:

import socket
import ssl

class server_ssl:
    def build_listen(self):
        # 生成SSL上下文
        context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
        # 加载服务器所用证书和私钥
        context.load_cert_chain('server.crt', 'key.pem')
                                                                               
        

# 监听端口
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) as sock:
        sock.bind(('10.63.120.14',7777))
        sock.listen(5)
        # 将socket打包成SS
  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值