首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使OpenSSL C服务器只支持TLS1.3?

要使OpenSSL C服务器只支持TLS1.3,可以按照以下步骤进行配置:

  1. 确保你的OpenSSL版本支持TLS1.3。TLS1.3是在OpenSSL 1.1.1版本中引入的,因此确保你的OpenSSL版本高于1.1.1。
  2. 在服务器端的代码中,使用OpenSSL库进行TLS连接的初始化和配置。以下是一个简单的示例代码:
代码语言:txt
复制
#include <openssl/ssl.h>

int main() {
    // 初始化OpenSSL库
    SSL_library_init();
    
    // 创建SSL上下文
    SSL_CTX *ctx = SSL_CTX_new(TLS_server_method());
    
    // 配置SSL上下文只支持TLS1.3
    SSL_CTX_set_min_proto_version(ctx, TLS1_3_VERSION);
    SSL_CTX_set_max_proto_version(ctx, TLS1_3_VERSION);
    
    // ... 其他配置
    
    // 在服务器端绑定SSL上下文到socket
    
    // 等待客户端连接并进行TLS握手
    
    // ... 其他操作
    
    // 清理资源
    SSL_CTX_free(ctx);
    
    return 0;
}

在上述代码中,通过调用SSL_CTX_set_min_proto_versionSSL_CTX_set_max_proto_version函数,将SSL上下文的最小和最大协议版本都设置为TLS1.3,从而限制服务器只支持TLS1.3。

  1. 编译和运行服务器端代码。根据你的编程语言和开发环境,进行相应的编译和运行操作。

需要注意的是,以上只是一个简单的示例代码,实际应用中可能还需要进行其他配置,如证书和密钥的加载、密码套件的配置等。具体的配置和实现方式可以参考OpenSSL的官方文档和示例代码。

推荐的腾讯云相关产品:腾讯云SSL证书管理,详情请参考腾讯云SSL证书管理

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

几个开源 RUST 安全算法库

Rustls支持的算法和协议有: TLS1.2 和 TLS1.3。 客户端发起的 ECDSA、Ed25519 或 RSA 服务器端身份验证。...ALPN 支持。 SNI 支持。 可调片段大小,使 TLS 消息匹配底层传输的大小。 可选地使用矢量 IO 来最小化系统调用。 TLS1.2 会话恢复。...TLS1.3 通过票据或会话存储恢复。 客户端的 TLS1.3 0-RTT 数据。 服务器TLS1.3 0-RTT 数据。 由客户端进行客户端身份验证。 服务器端进行客户端身份验证。...扩展的主密钥支持 (RFC7627)。 导出器 (RFC5705)。 服务器端装订 OCSP。 服务器端 SCT 装订。 客户端的 SCT 验证。...支持 OpenSSL 版本 1.0.1 到 3.x.x,此外还支持 LibreSSL 版本 2.5 到 3.4.1。 该项目被指出代码质量不好,并且缺少文档。

1.8K10
  • 科普 TLS 1.3 — 新特性

    标准完成后,OpenSSL 组织将推出 OpenSSL 1.1.1 版本,对 TLS1.3 协议标准提供支持。 ?...在 TLS 1.3 中,客户端首先不仅发送 ClientHello 支持的密码列表,而且还猜测服务器将选择哪种密钥协商算法,并发送密钥共享,这可以节省很大一部分的开销,从而提高了速度。...将客户端发送 ECDH 临时公钥的过程提前到 ClientHello,同时删除了 ChangeCipherSpec 协议简化握手过程,使第一次握手时只需要 1-RTT,来看具体的流程: ?...RSA 和 DH 密钥交换算法; MAC 使用 AEAD 算法; 禁用 RC4 / SHA1 等不安全的算法; 加密握手消息; 减少往返时延 RTT,支持 0-RTT; 兼容中间设备 TLS 1.2...△ TLS1.3 至于服务器端和浏览器里开启支持 TLSv1.3,大家可以参考【时隔快半年再次体验 HTTPS 的 TLSv1.3 协议】和【又拍云 CDN 的 HTTPS 已率先支持 TLS 1.3】

    3.1K60

    GoSnaps:如何支持5天50万用户服务器花100元

    GoSnaps: 5天50万用户服务器花100元 我自己也开发了一个与GoChat类似的应用GoSnaps,用户可以在应用的地图中分享自己的游戏截图。...24小时开发出一个高扩展的MVP 我开发GoSnaps从头到尾花了24个小时,典型MVP。我用了一个以前的NodeJS boilerplate项目和MongoDB作为数据库。...App本身是用Objective-C开发的,我从Unboxd项目借鉴了一些有关地图的代码。 如果不考虑扩展性就是要开发速度的话,把截图存储在MongoDB最方便了,基本什么都不用做。...其实做这些提高扩展性的工作多花了我两三个小时,区别在于一开始有没有考虑这些问题。我开发这款应用就是为了让它成功的所以必须考虑扩展性,如果开发一款应用是为了不要让太多用户用那干脆别开发了。...架构没变,换了个语言和数据库瞬间把负载降低到了之前的5%。其实归根结底只有一个原因就是创业艰难缺钱,好在Cloud Games现在经营得很不错。我想当时语言的转换对成功是起到了很大作用的。

    1.3K100

    OpenSSL支持TLS1.3特性(1)

    OpenSSL支持TLS1.3特性: TLS 1.3版本是对规范的重大修改。它到底应该叫TLS2.0还是现在的名字TLS 1.3,还存在一些争论。该版本有重大变化,一些工作方式也非常不同。...注意,在这一阶段,支持TLS 1.3。因DTLS 1.3版本的规范刚刚开始制定,目前并不支持OpenSSL。 TLS 1.3标准目前的状态: 到我写这篇文章时,TLS 1.3仍是一个草案。...OpenSSL 1.1.1至少不会在TLS 1.3发布之前完成。同时,OpenSSL的git主分支包含了我们的TLS1.3开发代码,可以用于测试(即不用于生产)。...如果一个客户端启用了TLS 1.3而未配置TLS 1.3密码套件,那么会立即报错(即使服务器支持TLS 1.3),出现以下提示: 140460646909376:error:141A90B5:SSLroutines...supportedSSL/TLS version 类似地,如果一个服务器启用了TLS 1.3而未配置TLS 1.3密码套件,那么也会立即报错,即使客户端不支持TLS 1.3,提示如下: 140547390854592

    3.1K20

    HTTPS你不要这么慢了

    OpenSSL升级 协议升级 密钥协商算法优化 对称加密算法优化 TLS1.2升级为1.3 密钥协商算法优化 密钥协商算法尽量选取ECDHE算法,该算法相比RSA算法具有向前保密,且在第三次握手以后就可以发送数据...非对称加密算法和对称加密算法),比如: ssl_ciphers ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA; 使用以下命令可以查看本地Open SSL的密码套件 openssl...TLS1.3如何将握手减少到1个RTT 上图是TLS1.3整个握手的过程,从图中可以看出经历过1个RTT以后,我们的客户端和服务端就可以发送加密数据了(Application Data)。...TLS1.3废除了RSA和DH加密算法,支持ECDHE算法。...证书优化 证书优化主要优化: 传输优化 验证优化 如何进行传输优化 服务器证书应该选择椭圆曲线(ECDSA)证书,相同安全强度下,ECDS证书相比RSA证书密钥更短,这样可以减少证书的大小,减小网络传输耗时

    1.3K30

    HTTP面试题 - HTTPS优化

    软件升级 Linux升级 OpenSSL升级和漏洞修复 协议优化 尽量升级到TLS1.3 使用 ECDHE 椭圆曲线函数,前向安全,速度快。...当使用 OpenSSL 1.0.2 或更高版本时,该指令设置服务器支持的曲线列表。因此,为了使 ECDSA 证书发挥作用,更为重要的是使用包含在证书中的曲线。...注意Nginx 官方并没有提供支持分布式服务器的 Session Cache 的实现,所以需要第三方组件提供存储支持,实现的方案也很多,比较简单的是使用第三方缓存中间件。...当客户端支持会话票证时,服务器将使用只有服务器拥有的密钥(会话票证加密密钥 (STEK))加密会话密钥,并将其发送到客户端。客户端收到之后需要保存好会话票证以及如何还原会话密钥的必要参数。...当然这都是2013年的设置,现在的处理方案各方面都已经不一样了,因为推特早就已经支持 TLS1.3

    64240

    OpenSSL升级 TLS1.3 后 网站访问不了了。。。

    怎么升级的,就不赘述了,网上都有,比如《Nginx 启用 OpenSSL TLS1.3 CHACHA20-POLY1305 相关》,其中 Nginx 1.10 不支持 OpenSSL 1.1.1(?)...居然支持 TLS 1.3 了,要知道现在支持 TLS 1.3 的浏览器少之又少,看了下网站配置: ...... ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;...编译 Nginx 则是在原基础上增加了参数: --with-openssl=...../src/openssl-1.1.1 --with-openssl-opt='enable-tls1_3 enable-weak-ssl-ciphers' 好像没啥问题啊,到底是哪里出错了呢?...同站服务器另一个站点可以正常访问,不过端口不一样,那我切换个端口试试,再访问看看: ? 图 2:访问正常(图片不显示?) 我了个去,这是什么骚操作??

    3.4K20

    HTTPS 握手会影响性能吗?废话,肯定会

    现在大部分网址都已从 HTTP 迁移至 HTTPS 协议,所以我们需要考虑的问题是:如何优化 HTTPS? 这次,就从多个角度来优化 HTTPS。...而且,TLS1.3 对密码套件进行“减肥”了,对于密钥交换算法,废除了不支持前向安全性的 RSA 和 DH 算法,支持 ECDHE 算法。...对于对称加密和签名算法,支持目前最安全的几个密码套件,比如 openssl 中仅支持下面 5 种密码套件: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256...TLS_AES_128_GCM_SHA256 TLS_AES_128_CCM_8_SHA256 TLS_AES_128_CCM_SHA256 之所以 TLS1.3支持这么少的密码套件,是因为...将 TLS1.2 升级 TLS1.3,因为 TLS1.3 的握手过程只需要 1 RTT,而且安全性更强。

    1.1K20

    时隔快半年再次体验 HTTPS 的 TLSv1.3 协议

    早在今年年初的时候,明月其实都有对 TLSv1.3 的多次尝试,在【纯自嗨,LNMP 下启用 TLSv1.3 支持过程全记录】一文里甚至分享了在军哥 LNMP1.4 一键安装包环境下如何启用 TLSv1.3...当时,受制于 TLSv1.3 支持情况实在是凤毛麟角(无论是客户端浏览器还是服务器层面的 CDN 都是少有支持的),没有“自嗨”几天就给停用了。 ?...没有想到随后又拍云 CDN 开始提供对 TLSv1.3 的支持,刚开始仅仅是测试仅支持几个 CDN 节点,现在已经正式支持 TLSv1.3 协议了,也就是说只要你的服务器支持 TLSv1.3,那么使用又拍云...CDN 后所有的 CDN 节点也可以使用 TLSv1.3,随着 TLSv1.3 正式上线我感觉是越来越近了(可参考【IETF 正式批准 TLS1.3 成为互联网新标准】),感觉还是越早部署越好了,免得到时候...现在看来在服务器端启用 TLSv1.3 算是一个“半自嗨”了,相对于之前的“纯自嗨”还是有不少进步的,哈哈!

    93830

    真正“搞”懂HTTPS协议18之TLS特性解析

    经过这一番瘦身后,TLS1.3保留了AES、ChaCha20对称加密算法,分组模式只能用 AEAD 的 GCM、CCM 和 Poly1305,摘要算法只能用 SHA256、SHA384,密钥交换算法只有...ECDHE 和 DHE,椭圆曲线也被“砍”到剩 P-256 和 x25519 等 5 种。   ...在第一次传递记录的时候,就把支持的版本号吖、key_share等等传递给了服务器服务器就可以根据这些字段处理数据返回给客户端,换句话说,其实就是打个提前量,减少请求次数。   ...Handshake Protocol: Client Hello Version: TLS 1.2 (0x0303) Random: cebeb6c05403654d66c2329…...这时交换了两条消息,客户端和服务器就拿到了四个共享信息:Client Random 和 Server Random、Client Params 和 Server Params,两边就可以各自用 ECDHE

    1.4K20

    HTTP - TLS1.3 初次解读

    这时候就要用到扩展协议(Extension Protocol),扩充协议有点类似“追加条款”,支持TLS1.2的服务器,当无法识别扩展协议而被忽略退化为TLS1.2握手,反之则认为可以进行TLS1.3...注意这里的退化还不止那么简单,TLS1.3 的退化支持TLS1.2,不支持TLS1.2以下任何版本,所以这一招还偷偷把一些 老古董请下去。...这个扩展的语义是客户端仅支持在这些模式下使用 PSK。如何防止 psk_key_exchange_modes 被滥用?...图片我们可以这样理解:我是服务器,我支持TLS1.3,我从一个客户端得到一个连接,它说它支持 TLS 1.2 或更低版本,但是实际上我支持更高级的版本,我会把这些信息改写到Server Random的最后一段...TLS 1.3 支持 (EC)DHE 的密钥协商算法,直接干掉了 RSA 密钥交换算法(减少学习成本,笑),加密套件削减为5个,并且所有基于公钥的密钥交换算法现在都能提供前向安全。

    3K10

    TLS1.3 正式版发布 — 特性与开启方式科普

    ,不再支持静态 RSA 密钥交换,握手将默认使用前向安全 Diffie-Hellman,客户端只需要一次往返就能与服务器建立安全和验证的连接,等等。...我们把使互联网实现安全通信的基础性技术称为传输层安全协议(TLS)。TLS是安全套接层协议(SSL)的进化版本,SSL是由Netscape公司在1990年代研发的。...TLS1.3信奉“少即是多”哲学,取消了对一些老旧而衰弱的加密方式的支持。这意味着你无法打开那些潜在的漏洞。...网页加载时间的一个主要组成部分就是浏览器和web服务器之间发送数据耗费的“延迟时间”。 “延迟时间”特别会显著影响到: 移动设备用户 服务器在地理上相距很远的用户 ?...不仅如此,而 TLS1.3 还有其他的优点。对于近期访问过的站点,你可以在第一次给服务器发消息时就发送有用的数据。这叫做“零消息往来”模式(0-RTT),会使网页加载变得更快!

    2.8K30

    让互联网更快的协议,QUIC在腾讯的实践及性能优化

    对 HTTPS,SPDY,HTTP2,QUIC 等应用层协议、高性能服务器技术、云网络技术、用户访问速度、分布式文件传输等有较深的理解。...多台服务器间的 ID 数据无法共享。 明确了问题,那工程层面就需要实现多进程共享及分布式多集群的 ID 共享。.../evp/e_aes.c # define AESNI_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(57-32))) 进行设置。...当然,如果手机端支持 AES-NI 指令的话,chacha20 就没有优势了。 Openssl 在 1.1.0 版本中正式支持了 chacha20-poly1305。...虽然后续可能会采用 TLS1.3 协议,但是事实上是 QUIC 推动了 TLS1.3 的发展。 为了实现传输的并发性,它又实现了 HTTP2 的大部分特性,包括多路复用,流量控制等。

    1.1K20

    SSLTLS 双向认证(一) — SSLTLS 工作原理

    TLS1.2: RFC5246, 目前已广泛使用 TLS1.3: RFC8446 下面我们将介绍 TLS1.x 如何保证通讯安全。...compression methods 列表,用于后续的信息压缩传输 随机数 random_C,用于后续的密钥的生成 扩展字段 extensions,支持协议与算法的相关参数以及其它辅助信息等,常见的...此时客户端已经获取全部的计算协商密钥需要的信息:两个明文随机数 random_C 和 random_S 与自己计算产生的 pre-master,计算得到协商密钥 enc_key=Fuc(random_C...+ encrypted_handshake_message 服务器用私钥解密加密的 pre-master 数据,基于之前交换的两个明文随机数 random_C 和 random_S,计算得到协商密钥:...我们看 TLSv1.1 的数据包: 第一包 (No. 25) Client Hello 包,即 SSL/TLS 单向认证流程的 (1) 第二包 (No. 27) Server Hello 包,包含服务器证书等

    7.6K10
    领券