什么是SSL上下文?

什么是SSL上下文?,ssl,network-programming,Ssl,Network Programming,在为SSL编程时,无论您选择哪种语言(C++、Java、Ruby等),都可能会遇到将要使用的SSLContext对象。我不知道SSLContext在语义上是什么意思?当我在谷歌上搜索时,有很多页面解释了这种对象在各种编程语言中的语法用法 我的问题是:SSLContext在SSL方面意味着什么?无论实现它的语言是什么。是密码、协议版本、受信任证书、TLS选项、TLS扩展等的集合。因为具有相同设置的多个连接非常常见,它们被放在一个上下文中,然后基于此上下文创建相关的SSL连接。要创建一个新的连接,您

在为SSL编程时,无论您选择哪种语言(C++、Java、Ruby等),都可能会遇到将要使用的
SSLContext
对象。我不知道
SSLContext
在语义上是什么意思?当我在谷歌上搜索时,有很多页面解释了这种对象在各种编程语言中的语法用法

我的问题是:
SSLContext
在SSL方面意味着什么?无论实现它的语言是什么。

是密码、协议版本、受信任证书、TLS选项、TLS扩展等的集合。因为具有相同设置的多个连接非常常见,它们被放在一个上下文中,然后基于此上下文创建相关的SSL连接。要创建一个新的连接,您只需要参考上下文,这样与您需要重新创建所有这些设置的情况相比,可以节省时间和内存

编辑:@EJP很好地将这个“集合”描述为工厂。SSL上下文与SSL上下文不同,甚至两者都是设置集合。会话是在SSL握手之后得到的,它只包括双方商定的密码和协议版本,以及交换的密钥。鉴于上下文涵盖了所有密码和协议版本以及本地系统(客户端或服务器)在建立新TLS连接时愿意支持的可信证书列表。因此,SSL会话描述已建立的SSL关系,而SSL上下文描述建立SSL关系所需的内容。

  • :此类的实例表示安全套接字协议实现,该实现充当安全套接字工厂或SSLEngines的工厂。该类使用一组可选的密钥和信任管理器以及安全随机字节源进行初始化

  • :在SSL中,会话用于描述两个实体之间的持续关系。每个SSL连接一次涉及一个会话,但该会话可以同时或顺序用于这些实体之间的多个连接。连接上使用的会话也可以由不同的会话替换。会话作为SSL握手协议的一部分创建或重新加入。会话可能会由于影响安全性或资源使用的策略而无效,或者由于应用程序显式调用invalidate而无效。会话管理策略通常用于调整性能

  • :SSLSessionContext表示与单个实体关联的一组SSLSession。例如,它可以与同时参与多个会话的服务器或客户端相关联。
    SSLSessionContext
    可以配置会话超时


您谈论的是SSL会话。@EJP:“…然后根据此上下文创建相关的SSL连接…”-我不是在谈论现有的关系,而是在进行连接之前设置的内容。一旦建立了连接并进行了SSL握手,会话就是您得到的。好的,通过更改“每个连接只需要引用…”,您已经澄清了这一点。“工厂”的描述不是我的,而是Javadoc的。断开的链接:(@TimGerlach:fixed links“…SSLSession[什么是@SteffenUlrich说的]…”-我说的不是会话,因为我说的是建立连接之前的会话。只有在进行SSL握手后才能获得会话,这涉及到首先建立基础连接。我说的是你很好地描述为factory的内容,只是我还说了factory的这些设置包括哪些内容。