Skip to content

Commit b577a7c

Browse files
Xuanwoeverpcpc
andauthored
refactor: Use native-tls as default (#16199)
* refactor: Use native-tls as default Signed-off-by: Xuanwo <github@xuanwo.io> * fix: use vendored openssl * fix: feature native-tls-tls for mysql_async * feat: use openssl-tls for poem * fix: lint * chore: disable client cert support --------- Signed-off-by: Xuanwo <github@xuanwo.io> Co-authored-by: everpcpc <git@everpcpc.com>
1 parent 30e2ab7 commit b577a7c

File tree

8 files changed

+165
-71
lines changed

8 files changed

+165
-71
lines changed

Cargo.lock

Lines changed: 127 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ itertools = "0.10.5"
255255
jsonb = "0.4.1"
256256
jwt-simple = "0.11.0"
257257
match-template = "0.0.1"
258-
mysql_async = { version = "0.34", default-features = false, features = ["rustls-tls"] }
258+
mysql_async = { version = "0.34", default-features = false, features = ["native-tls-tls"] }
259259
object_store_opendal = "0.45"
260260
once_cell = "1.15.0"
261261
openai_api_rust = "0.1"
@@ -288,7 +288,8 @@ ordq = "0.2.0"
288288
parking_lot = "0.12.1"
289289
parquet = { version = "52", features = ["async"] }
290290
paste = "1.0.15"
291-
poem = { version = "3.0", features = ["rustls", "multipart", "compression"] }
291+
# TODO: let's use native tls instead.
292+
poem = { version = "3.0", features = ["openssl-tls", "multipart", "compression"] }
292293
prometheus-client = "0.22"
293294
prost = { version = "0.12.1" }
294295
prost-build = { version = "0.12.1" }
@@ -297,8 +298,8 @@ regex = "1.8.1"
297298
reqwest = { version = "0.12", default-features = false, features = [
298299
"json",
299300
"http2",
300-
"rustls-tls",
301-
"rustls-tls-native-roots",
301+
"native-tls-vendored",
302+
"native-tls-alpn",
302303
] }
303304
reqwest-hickory-resolver = "0.1"
304305
rotbl = { git = "https://github.com/drmingdrmer/rotbl", tag = "v0.1.2-alpha.6", features = [] }

src/common/http/src/http_shutdown_handlers.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use poem::listener::Acceptor;
2828
use poem::listener::AcceptorExt;
2929
use poem::listener::IntoTlsConfigStream;
3030
use poem::listener::Listener;
31-
use poem::listener::RustlsConfig;
31+
use poem::listener::OpensslTlsConfig;
3232
use poem::listener::TcpListener;
3333
use poem::Endpoint;
3434

@@ -52,7 +52,7 @@ impl HttpShutdownHandler {
5252
pub async fn start_service(
5353
&mut self,
5454
listening: SocketAddr,
55-
tls_config: Option<RustlsConfig>,
55+
tls_config: Option<OpensslTlsConfig>,
5656
ep: impl Endpoint + 'static,
5757
graceful_shutdown_timeout: Option<Duration>,
5858
) -> Result<SocketAddr, HttpError> {
@@ -76,7 +76,7 @@ impl HttpShutdownHandler {
7676
.into_stream()
7777
.map_err(|err| HttpError::TlsConfigError(AnyError::new(&err)))?;
7878

79-
acceptor = acceptor.rustls(conf_stream).boxed();
79+
acceptor = acceptor.openssl_tls(conf_stream).boxed();
8080
}
8181

8282
let (tx, rx) = oneshot::channel();

src/meta/service/src/api/http_service.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ use databend_common_meta_types::MetaNetworkError;
2929
use log::info;
3030
use log::warn;
3131
use poem::get;
32-
use poem::listener::RustlsCertificate;
33-
use poem::listener::RustlsConfig;
32+
use poem::listener::OpensslTlsConfig;
3433
use poem::Endpoint;
3534
use poem::EndpointExt;
3635
use poem::Route;
@@ -104,17 +103,10 @@ impl HttpService {
104103
route.data(self.meta_node.clone()).data(self.cfg.clone())
105104
}
106105

107-
fn build_tls(config: &Config) -> Result<RustlsConfig, MetaNetworkError> {
108-
let conf = config.clone();
109-
110-
let tls_cert = std::fs::read(conf.admin_tls_server_cert.as_str())
111-
.map_err(|e| MetaNetworkError::TLSConfigError(AnyError::new(&e)))?;
112-
113-
let tls_key = std::fs::read(conf.admin_tls_server_key)
114-
.map_err(|e| MetaNetworkError::TLSConfigError(AnyError::new(&e)))?;
115-
116-
let certificate = RustlsCertificate::new().cert(tls_cert).key(tls_key);
117-
let cfg = RustlsConfig::new().fallback(certificate);
106+
fn build_tls(config: &Config) -> Result<OpensslTlsConfig, MetaNetworkError> {
107+
let cfg = OpensslTlsConfig::new()
108+
.cert_from_file(config.admin_tls_server_cert.as_str())
109+
.key_from_file(config.admin_tls_server_key.as_str());
118110
Ok(cfg)
119111
}
120112

0 commit comments

Comments
 (0)