TLS原理及证书生成

本文详细介绍了TLS加密通信的原理,包括如何使用非对称加密协商密钥,以及如何利用对称加密进行安全通信。同时,文章还提供了生成RSA密钥、证书请求和自签名证书的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、生成RSA密钥

> openssl genrsa -des3 -out mykey.pem 2048 

或者:

> openssl genrsa -out mykey.pem 2048 

建议用2048位密钥,少于此可能会不安全或很快将不安全。

2、生成证书请求

> openssl req -new -key mykey.pem -out cert.csr 

cert.csr即一个证书请求文件,可以拿着这个文件去数字证书颁发机构(CA)申请数字证书。CA会给一个新的文件cacert.pem,即数字证书。

3、生成证书
若自己测试,则证书的申请机构和颁发机构都是自己。可以用如下命令生成证书:

> openssl req -new -x509 -key mykey.pem -out cert.pem -days 1095 

4、使用数字证书和密钥
有了mykey.pem和cert.pem文件后就可以在自己的程序中使用了,比如做一个加密通讯的TCP通信连接。

TLS加密大致原理如下:
简单说来,TLS通信的核心是使用 非对称加密 去协商一个密钥Key,然后通信双方使用密钥Key进行对称加密通信,具体过程如下:

  1. 客户端获取服务器证书(即前面所述的cert.pem),验证证书合法有效,以确保公钥来自服务器,而不是伪造的公钥。
  2. 客户端生成一个随机数A,并使用服务器证书(cert.pem)中的公钥加密一个随机数A,发送给服务器
  3. 服务器用私钥(即前面所述的mykey.pem )解密得到随机数A(服务器私钥一定要保存好,不可泄露)
  4. 后续双方使用随机数A进行对称加密通信。

这样即使数据被第三方拦截,也无法得到随机数A(因为私钥只在服务器手中),所以后续双方的对称加密通信也是安全的。当然,这只是大致原理,具体实现远远复杂的多。

以上为个人理解总结,欢迎纠正指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值