@ -9,7 +9,7 @@ import "envoy/extensions/transport_sockets/tls/v3/secret.proto";
import "google/protobuf/duration.proto" ;
import "google/protobuf/wrappers.proto" ;
import "udpa/annotations/migrate .proto" ;
import "envoy/annotations/deprecation .proto" ;
import "udpa/annotations/status.proto" ;
import "udpa/annotations/versioning.proto" ;
import "validate/validate.proto" ;
@ -125,12 +125,18 @@ message DownstreamTlsContext {
}
/ / TLS context shared by both client and server TLS contexts.
/ / [ # next - free - field : 14 ]
/ / [ # next - free - field : 15 ]
message CommonTlsContext {
option ( udpa.annotations.versioning ) . previous_message_type = "envoy.api.v2.auth.CommonTlsContext" ;
/ / Config for Certificate provider to get certificates. This provider should allow certificates to be
/ / fetched / refreshed over the network asynchronously with respect to the TLS handshake.
/ /
/ / DEPRECATED : This message is not currently used , but if we ever do need it , we will want to
/ / move it out of CommonTlsContext and into common.proto , similar to the existing
/ / CertificateProviderPluginInstance message.
/ /
/ / [ # not - implemented - hide : ]
message CertificateProvider {
/ / opaque name used to specify certificate instances or types. For example , "ROOTCA" to specify
/ / a root - certificate ( validation context ) or "TLS" to specify a new tls - certificate.
@ -151,6 +157,11 @@ message CommonTlsContext {
/ / Similar to CertificateProvider above , but allows the provider instances to be configured on
/ / the client side instead of being sent from the control plane.
/ /
/ / DEPRECATED : This message was moved outside of CommonTlsContext
/ / and now lives in common.proto.
/ /
/ / [ # not - implemented - hide : ]
message CertificateProviderInstance {
/ / Provider instance name. This name must be defined in the client ' s configuration ( e.g. , a
/ / bootstrap file ) to correspond to a provider instance ( i.e. , the same data in the typed_config
@ -179,26 +190,20 @@ message CommonTlsContext {
/ / Config for fetching validation context via SDS API. Note SDS API allows certificates to be
/ / fetched / refreshed over the network asynchronously with respect to the TLS handshake.
/ / Only one of validation_context_sds_secret_config , validation_context_certificate_provider ,
/ / or validation_context_certificate_provider_instance may be used.
SdsSecretConfig validation_context_sds_secret_config = 2 [
( validate.rules ) . message = { required : true } ,
( udpa.annotations.field_migrate ) . oneof_promotion = "dynamic_validation_context"
] ;
SdsSecretConfig validation_context_sds_secret_config = 2
[ ( validate.rules ) . message = { required : true } ] ;
/ / Certificate provider for fetching validation context.
/ / Only one of validation_context_sds_secret_config , validation_context_certificate_provider ,
/ / or validation_context_certificate_provider_instance may be used.
/ / Certificate provider for fetching CA certs. This will populate the
/ / * default_validation_context.trusted_ca * field.
/ / [ # not - implemented - hide : ]
CertificateProvider validation_context_certificate_provider = 3
[ ( udpa.annotations.field_migrate ) . oneof_promotion = "dynamic_validation_context "] ;
[ deprecated = true , ( envoy.annotations.deprecated_at_minor_version ) = "3.0 "] ;
/ / Certificate provider instance for fetching validation context.
/ / Only one of validation_context_sds_secret_config , validation_context_certificate_provider ,
/ / or validation_context_certificate_provider_instance may be used.
/ / Certificate provider instance for fetching CA certs. This will populate the
/ / * default_validation_context.trusted_ca * field.
/ / [ # not - implemented - hide : ]
CertificateProviderInstance validation_context_certificate_provider_instance = 4
[ ( udpa.annotations.field_migrate ) . oneof_promotion = "dynamic_validation_context "] ;
[ deprecated = true , ( envoy.annotations.deprecated_at_minor_version ) = "3.0 "] ;
}
reserved 5 ;
@ -212,6 +217,12 @@ message CommonTlsContext {
/ / Only a single TLS certificate is supported in client contexts. In server contexts , the first
/ / RSA certificate is used for clients that only support RSA and the first ECDSA certificate is
/ / used for clients that support ECDSA.
/ /
/ / Only one of * tls_certificates * , * tls_certificate_sds_secret_configs * ,
/ / and * tls_certificate_provider_instance * may be used.
/ / [ # next - major - version : These mutually exclusive fields should ideally be in a oneof , but it ' s
/ / not legal to put a repeated field in a oneof . In the next major version , we should rework
/ / this to avoid this problem. ]
repeated TlsCertificate tls_certificates = 2 ;
/ / Configs for fetching TLS certificates via SDS API. Note SDS API allows certificates to be
@ -220,18 +231,30 @@ message CommonTlsContext {
/ / The same number and types of certificates as : ref : ` tls_certificates < envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.tls_certificates > `
/ / are valid in the the certificates fetched through this setting.
/ /
/ / If : ref : ` tls_certificates < envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.tls_certificates > `
/ / is non - empty , this field is ignored.
/ / Only one of * tls_certificates * , * tls_certificate_sds_secret_configs * ,
/ / and * tls_certificate_provider_instance * may be used.
/ / [ # next - major - version : These mutually exclusive fields should ideally be in a oneof , but it ' s
/ / not legal to put a repeated field in a oneof . In the next major version , we should rework
/ / this to avoid this problem. ]
repeated SdsSecretConfig tls_certificate_sds_secret_configs = 6
[ ( validate.rules ) . repeated = { max_items : 2 } ] ;
/ / Certificate provider instance for fetching TLS certs.
/ /
/ / Only one of * tls_certificates * , * tls_certificate_sds_secret_configs * ,
/ / and * tls_certificate_provider_instance * may be used.
/ / [ # not - implemented - hide : ]
CertificateProviderPluginInstance tls_certificate_provider_instance = 14 ;
/ / Certificate provider for fetching TLS certificates.
/ / [ # not - implemented - hide : ]
CertificateProvider tls_certificate_certificate_provider = 9 ;
CertificateProvider tls_certificate_certificate_provider = 9
[ deprecated = true , ( envoy.annotations.deprecated_at_minor_version ) = "3.0" ] ;
/ / Certificate provider instance for fetching TLS certificates.
/ / [ # not - implemented - hide : ]
CertificateProviderInstance tls_certificate_certificate_provider_instance = 11 ;
CertificateProviderInstance tls_certificate_certificate_provider_instance = 11
[ deprecated = true , ( envoy.annotations.deprecated_at_minor_version ) = "3.0" ] ;
oneof validation_context_type {
/ / How to validate peer certificates.
@ -252,11 +275,13 @@ message CommonTlsContext {
/ / Certificate provider for fetching validation context.
/ / [ # not - implemented - hide : ]
CertificateProvider validation_context_certificate_provider = 10 ;
CertificateProvider validation_context_certificate_provider = 10
[ deprecated = true , ( envoy.annotations.deprecated_at_minor_version ) = "3.0" ] ;
/ / Certificate provider instance for fetching validation context.
/ / [ # not - implemented - hide : ]
CertificateProviderInstance validation_context_certificate_provider_instance = 12 ;
CertificateProviderInstance validation_context_certificate_provider_instance = 12
[ deprecated = true , ( envoy.annotations.deprecated_at_minor_version ) = "3.0" ] ;
}
/ / Supplies the list of ALPN protocols that the listener should expose. In