diff --git a/quic/core/crypto/quic_crypto_client_config.h b/quic/core/crypto/quic_crypto_client_config.h
index bb06260..847fc96 100644
--- a/quic/core/crypto/quic_crypto_client_config.h
+++ b/quic/core/crypto/quic_crypto_client_config.h
@@ -362,6 +362,14 @@
   // handshake message.
   const std::string& user_agent_id() const { return user_agent_id_; }
 
+  void set_tls_signature_algorithms(std::string signature_algorithms) {
+    tls_signature_algorithms_ = std::move(signature_algorithms);
+  }
+
+  const absl::optional<std::string>& tls_signature_algorithms() const {
+    return tls_signature_algorithms_;
+  }
+
   // Saves the |alpn| that will be passed in QUIC's CHLO message.
   void set_alpn(const std::string& alpn) { alpn_ = alpn; }
 
@@ -435,6 +443,10 @@
   // incorporating |pre_shared_key_| into the key schedule.
   std::string pre_shared_key_;
 
+  // If set, configure the client to use the specified signature algorithms, via
+  // SSL_set1_sigalgs_list. TLS only.
+  absl::optional<std::string> tls_signature_algorithms_;
+
   // In QUIC, technically, client hello should be fully padded.
   // However, fully padding on slow network connection (e.g. 50kbps) can add
   // 150ms latency to one roundtrip. Therefore, you can disable padding of
diff --git a/quic/core/tls_client_handshaker.cc b/quic/core/tls_client_handshaker.cc
index 932737a..737f449 100644
--- a/quic/core/tls_client_handshaker.cc
+++ b/quic/core/tls_client_handshaker.cc
@@ -47,6 +47,10 @@
   if (!token.empty()) {
     session->SetSourceAddressTokenToSend(token);
   }
+  if (crypto_config->tls_signature_algorithms().has_value()) {
+    SSL_set1_sigalgs_list(ssl(),
+                          crypto_config->tls_signature_algorithms()->c_str());
+  }
 }
 
 TlsClientHandshaker::~TlsClientHandshaker() {}
diff --git a/quic/tools/quic_client_base.h b/quic/tools/quic_client_base.h
index 82ee392..51e3433 100644
--- a/quic/tools/quic_client_base.h
+++ b/quic/tools/quic_client_base.h
@@ -145,6 +145,11 @@
     crypto_config_.set_user_agent_id(user_agent_id);
   }
 
+  void SetTlsSignatureAlgorithms(std::string signature_algorithms) {
+    crypto_config_.set_tls_signature_algorithms(
+        std::move(signature_algorithms));
+  }
+
   const ParsedQuicVersionVector& supported_versions() const {
     return supported_versions_;
   }
