Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion pingora-core/src/protocols/tls/boringssl_openssl/stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,11 @@ impl SslDigest {
None => (Vec::new(), None, None),
};

SslDigest::new(cipher, ssl.version_str(), org, sn, cert_digest)
let sni = ssl
.servername(ssl::NameType::HOST_NAME)
.map(ToOwned::to_owned);

SslDigest::new(cipher, ssl.version_str(), org, sn, cert_digest, sni)
}
}

Expand Down
4 changes: 4 additions & 0 deletions pingora-core/src/protocols/tls/digest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ pub struct SslDigest {
pub serial_number: Option<String>,
/// The digest of the peer's certificate
pub cert_digest: Vec<u8>,
/// The SNI (Server Name Indication) from the TLS handshake
pub sni: Option<String>,
/// The user-defined TLS data
pub extension: SslDigestExtension,
}
Expand All @@ -43,6 +45,7 @@ impl SslDigest {
organization: Option<String>,
serial_number: Option<String>,
cert_digest: Vec<u8>,
sni: Option<String>,
) -> Self
where
S: Into<Cow<'static, str>>,
Expand All @@ -53,6 +56,7 @@ impl SslDigest {
organization,
serial_number,
cert_digest,
sni,
extension: SslDigestExtension::default(),
}
}
Expand Down
14 changes: 13 additions & 1 deletion pingora-core/src/protocols/tls/rustls/stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,19 @@ impl SslDigest {
.map(|(organization, serial)| (organization, Some(serial)))
.unwrap_or_default();

SslDigest::new(cipher, version, organization, serial_number, cert_digest)
let sni = match stream {
RusTlsStream::Server(s) => s.get_ref().1.server_name().map(ToOwned::to_owned),
_ => None,
};

SslDigest::new(
cipher,
version,
organization,
serial_number,
cert_digest,
sni,
)
}
}

Expand Down
3 changes: 3 additions & 0 deletions pingora-core/src/protocols/tls/s2n/stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -307,12 +307,15 @@ impl SslDigest {
}
}

let sni = conn.server_name().map(ToOwned::to_owned);

SslDigest::new(
cipher,
version,
organization,
serial_number,
cert_digest.unwrap_or_default(),
sni,
)
}
}
Expand Down
Loading