Skip to content

Commit 45b77f1

Browse files
ameowliaebroberson
authored andcommitted
fix(envoyconfig): use DNS SAN type in MatchTypedSubjectAltNames
Replace deprecated MatchSubjectAltNames with MatchTypedSubjectAltNames. Diego container identity certs use DNSNames (container GUID + internal routes), so hardcode SanType=DNS. Update tests to match.
1 parent dd02d12 commit 45b77f1

3 files changed

Lines changed: 10 additions & 4 deletions

File tree

src/code.cloudfoundry.org/executor/depot/containerstore/proxy_config_handler_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -651,8 +651,8 @@ var _ = Describe("ProxyConfigHandler", func() {
651651
},
652652
},
653653
MatchTypedSubjectAltNames: []*envoy_tls.SubjectAltNameMatcher{
654-
{SanType: envoy_tls.SubjectAltNameMatcher_URI, Matcher: &envoy_matcher.StringMatcher{MatchPattern: &envoy_matcher.StringMatcher_Exact{Exact: "valid-alt-name-1"}}},
655-
{SanType: envoy_tls.SubjectAltNameMatcher_URI, Matcher: &envoy_matcher.StringMatcher{MatchPattern: &envoy_matcher.StringMatcher_Exact{Exact: "valid-alt-name-2"}}},
654+
{SanType: envoy_tls.SubjectAltNameMatcher_DNS, Matcher: &envoy_matcher.StringMatcher{MatchPattern: &envoy_matcher.StringMatcher_Exact{Exact: "valid-alt-name-1"}}},
655+
{SanType: envoy_tls.SubjectAltNameMatcher_DNS, Matcher: &envoy_matcher.StringMatcher{MatchPattern: &envoy_matcher.StringMatcher_Exact{Exact: "valid-alt-name-2"}}},
656656
},
657657
},
658658
}))

src/code.cloudfoundry.org/executor/envoyconfig/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ func generateSDSCAResourceSecret(container executor.Container, idCred Credential
423423
var matchers []*envoy_tls.SubjectAltNameMatcher
424424
for _, s := range subjectAltNames {
425425
matchers = append(matchers, &envoy_tls.SubjectAltNameMatcher{
426-
SanType: envoy_tls.SubjectAltNameMatcher_URI,
426+
SanType: envoy_tls.SubjectAltNameMatcher_DNS,
427427
Matcher: &envoy_matcher.StringMatcher{MatchPattern: &envoy_matcher.StringMatcher_Exact{Exact: s}},
428428
})
429429
}

src/code.cloudfoundry.org/executor/envoyconfig/config_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,19 @@ func TestGenerateSDSCAResource(t *testing.T) {
134134
container := executor.Container{Guid: "meow-guid"}
135135
idCred := Credential{}
136136
trusted := []string{}
137-
yaml, err := GenerateSDSCAResource(container, idCred, trusted, []string{"spiffe://meow"})
137+
yaml, err := GenerateSDSCAResource(container, idCred, trusted, []string{"some-guid.cf.internal", "gorouter.service.cf.internal"})
138138
if err != nil {
139139
t.Fatal(err)
140140
}
141141
if !bytes.Contains(yaml, []byte("id-validation-context")) {
142142
t.Error("YAML missing validation context name")
143143
}
144+
if !bytes.Contains(yaml, []byte("some-guid.cf.internal")) {
145+
t.Error("YAML missing first DNS SAN")
146+
}
147+
if !bytes.Contains(yaml, []byte("gorouter.service.cf.internal")) {
148+
t.Error("YAML missing second DNS SAN")
149+
}
144150
}
145151

146152
func TestGenerateSDSCAResource_TrustedCACertsTooLarge(t *testing.T) {

0 commit comments

Comments
 (0)