Tomcat处理Https流程
2021-10-09 17:42:52 0 举报
AI智能生成
登录查看完整内容
jdk中tls的消息复用原理
作者其他创作
大纲/内容
this.readCipher.decrypt(数据解密)
SSLSocketInputRecord.decodeInputRecord
context.inputRecord.decode
HANDSHAKE
throw 异常
CLOSE_NOTIFY
closeReason
isBroken
根据异常修改各自属性
close
task
根据不同异常对当前请求做处理
USER_CANCELED
other
AlertConsumer.consume
ALERT
default - consumers.get(var1.contentType)
case-consume
context.dispatch(plainText)
readHandshakeRecord-decode
Subtopic
ensureNegotiated- startHandshake
ClientKeyExchangeConsumer.comsume
engineGetServerSessionContext()).get(var4.sessionId.getId())根据浏览器传递的sessionId查询是否存在对应信息
对比本次消息的tls版本和session中的是否一致
var7 != var3.negotiatedProtocol
CLIENT_AUTH_NONE 目前看到的只有
客户端身份验证类型var3.sslConfig.clientAuthType == ClientAuthType.CLIENT_AUTH_REQUIRED
对比请求中的密码套件组与缓存中的密码套件
密码套件认证
进行session信息判断验证
if(ClientHelloMessage.sessionId.length() != 0)
isResumption 赋值 = session信息判断验证结果
resumingSession中的信息直接赋值给外层
将缓存中的信息复制出来等待使用
可以重用
如果客户端请求方式不等于ClientAuthType.CLIENT_AUTH_NONE
新建session
添加SERVER_HELLO_DONE处理消息去进行下一步处理
不可以重用则新建session
判断是否可以重用
KeyGenerator var15 = JsseJce.getKeyGenerator(var9)
var15.init(var14)
this.keyMaterialSpec = (TlsKeyMaterialSpec)var15.generateKey()
LegacyTrafficKeyDerivation
生成解密handshakeKeyDerivation
如果可以重用
添加FINISHED处理消息
T12ServerHelloProducer.produce
FINISHED
CLIENT_KEY_EXCHANGE
var3.handshakeConsumers.put
ServerHelloDoneProducer.produce
var3.handshakeProducers循环处理消息
onClientHello
ClientHelloConsumer.comsume
isResumption如果是复用更新信息
添加session到缓存中
不是复用
onProduceFinished
onConsumeFinished
T12FinishedConsumer.comsume
consume
this.engine.conContext.delegatedThrown = 异常
this.engine.conContext.closeReason = getTaskThrown(异常)
consume中所有的异常被捕获后
DelegatedAction.run().dispatch
tasks()消息处理
handshakeUnwrap
NEED_UNWRAP
NEED_TASK
delegatedThrown如果有值就抛出异常并清空异常
checkTaskThrown检查是否有异常
。。。。。。
返回不同的
writeRecord如果上面没有抛异常会进入此函数
SSLEngineImpl.wrap
handshake = handshakeWrap(write)
handshakeStatus == HandshakeStatus.NEED_TASK
handshake.getStatus() == Status.OK
flush(netOutBuffer);返回消息发送
handshake.getStatus() == Status.CLOSED
NEED_WRAP
HandshakeStatus
handshake
read
收藏
0 条评论
回复 删除
下一页