mtls加密双向认证

https://www.cloudflare.com/en-gb/learning/access-management/what-is-mutual-tls/

HTTPS双向认证(Mutual TLS authentication) - API 网关 - 阿里云

SSL/TLS 双向认证(一) -- SSL/TLS 工作原理_ustccw-CSDN博客_双向认证

SSL/TSL双向认证过程与Wireshark抓包分析_区块链之美的博客-CSDN博客_双向认证抓包

SSL/TSL双向认证过程与Wireshark抓包分析_区块链之美-CSDN博客_ssl双向认证抓包

HTTPS双向认证(Mutual TLS authentication) - API 网关 - 阿里云

HTTPS_百度百科



通过 SSL/TLS 进行身份验证 | Worldpay Developers

HTTPS协议的改进

编辑 播报

双向的身份认证

客户端服务端在传输数据之前,会通过基于X.509证书对双方进行身份认证 。具体过程如下 [3]  :

客户端发起 SSL 握手消息给服务端要求连接。

服务端将证书发送给客户端。

客户端检查服务端证书,确认是否由自己信任的证书签发机构签发。 如果不是,将是否继续通讯的决定权交给用户选择 ( 注意,这里将是一个安全缺陷 )。如果检查无误或者用户选择继续,则客户端认可服务端的身份。

服务端要求客户端发送证书,并检查是否通过验证。失败则关闭连接,认证成功则从客户端证书中获得客户端的公钥,一般为1024位或者 2048位。到此,服务器客户端双方的身份认证结束,双方确保身份都是真实可靠的。

数据传输的机密性

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以尝试以下实验步骤: 1. 首先,使用 OpenSSL 生成 服务器和客户端的证书和私钥。例如: ``` openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt openssl req -newkey rsa:2048 -nodes -keyout client.key -x509 -days 365 -out client.crt ``` 2. 创建一个服务器端实现,将证书和私钥加载到 SSL 上下文中,并在服务器上启动双向认证。例如: ``` SSL_CTX *ctx = SSL_CTX_new(TLSv1_2_server_method()); SSL_CTX_use_certificate_file(ctx, "server.crt", SSL_FILETYPE_PEM); SSL_CTX_use_PrivateKey_file(ctx, "server.key", SSL_FILETYPE_PEM); SSL_CTX_load_verify_locations(ctx, "client.crt", NULL); SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, NULL); ``` 3. 创建一个客户端实现,将证书和私钥加载到 SSL 上下文中,并在客户端上启动双向认证。例如: ``` SSL_CTX *ctx = SSL_CTX_new(TLSv1_2_client_method()); SSL_CTX_use_certificate_file(ctx, "client.crt", SSL_FILETYPE_PEM); SSL_CTX_use_PrivateKey_file(ctx, "client.key", SSL_FILETYPE_PEM); SSL_CTX_load_verify_locations(ctx, "server.crt", NULL); SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, NULL); ``` 4. 启动服务器和客户端,并通过 SSL 建立双向认证连接。例如: ``` SSL *ssl = SSL_new(ctx); SSL_set_fd(ssl, sockfd); SSL_accept(ssl); SSL *ssl = SSL_new(ctx); SSL_set_fd(ssl, sockfd); SSL_connect(ssl); ``` 5. 在双向认证连接上发送和接收数据。例如: ``` SSL_write(ssl, buf, len); SSL_read(ssl, buf, len); ``` 希望这个实验对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值