allow the CSR section of the router to be configured separately from the _advertised_ address

This commit is contained in:
dovholuknf
2023-07-11 15:22:25 -04:00
parent f3760e262e
commit 7094f5d219
7 changed files with 25 additions and 7 deletions
+1 -1
View File
@@ -65,7 +65,7 @@ edge:
organizationalUnit: {{ .Router.Edge.CsrOU }}
sans:
dns:
- {{ .Router.Edge.AdvertisedHost }}
- {{ .Router.Edge.CsrSans }}
- localhost
ip:
- "127.0.0.1"
+2
View File
@@ -167,6 +167,7 @@ type EdgeRouterTemplateValues struct {
CsrL string
CsrO string
CsrOU string
CsrSans string
}
type WSSRouterTemplateValues struct {
@@ -288,6 +289,7 @@ func (data *ConfigTemplateValues) populateConfigValues() {
data.Router.Edge.CsrL = cmdHelper.GetZitiEdgeRouterL()
data.Router.Edge.CsrO = cmdHelper.GetZitiEdgeRouterO()
data.Router.Edge.CsrOU = cmdHelper.GetZitiEdgeRouterOU()
data.Router.Edge.CsrSans = cmdHelper.GetRouterSans()
data.Router.Listener.GetSessionTimeout = constants.DefaultGetSessionTimeout
data.Router.Wss.WriteTimeout = foundation.DefaultWsWriteTimeout
+2
View File
@@ -131,6 +131,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command {
{constants.ZitiEdgeRouterCsrLVarName, constants.ZitiEdgeRouterCsrLVarDescription, data.Router.Edge.CsrL},
{constants.ZitiEdgeRouterCsrOVarName, constants.ZitiEdgeRouterCsrOVarDescription, data.Router.Edge.CsrO},
{constants.ZitiEdgeRouterCsrOUVarName, constants.ZitiEdgeRouterCsrOUVarDescription, data.Router.Edge.CsrOU},
{constants.ZitiRouterCsrSansDnsVarName, constants.ZitiRouterCsrSansDnsVarDescription, data.Router.Edge.CsrSans},
}
// Setup logging
@@ -208,6 +209,7 @@ func NewCmdCreateConfigEnvironment() *cobra.Command {
sb.WriteString(fmt.Sprintf("%-40s %-50s %s\n", constants.ZitiEdgeRouterCsrLVarName, constants.ZitiEdgeRouterCsrLVarDescription, data.Router.Edge.CsrL))
sb.WriteString(fmt.Sprintf("%-40s %-50s %s\n", constants.ZitiEdgeRouterCsrOVarName, constants.ZitiEdgeRouterCsrOVarDescription, data.Router.Edge.CsrO))
sb.WriteString(fmt.Sprintf("%-40s %-50s %s\n", constants.ZitiEdgeRouterCsrOUVarName, constants.ZitiEdgeRouterCsrOUVarDescription, data.Router.Edge.CsrOU))
sb.WriteString(fmt.Sprintf("%-40s %-50s %s\n", constants.ZitiRouterCsrSansDnsVarName, constants.ZitiRouterCsrSansDnsVarDescription, data.Router.Edge.CsrSans))
cmd.Long = sb.String()
+10 -6
View File
@@ -291,29 +291,32 @@ func TestEdgeRouterIPOverrideIsConsumed(t *testing.T) {
func TestEdgeRouterCsrFields(t *testing.T) {
routerOptions := clearEnvAndInitializeTestData()
routerName := "CstTest"
config, data := createRouterConfig([]string{"edge", "--routerName", routerName}, routerOptions, nil)
config1, data := createRouterConfig([]string{"edge", "--routerName", routerName}, routerOptions, nil)
// Check that the template values now contains the custom external IP override value
assert.Equal(t, "US", data.Router.Edge.CsrC)
assert.Equal(t, "US", config.Edge.Csr.Country)
assert.Equal(t, "US", config1.Edge.Csr.Country)
assert.Equal(t, "NC", data.Router.Edge.CsrST)
assert.Equal(t, "NC", config.Edge.Csr.Province)
assert.Equal(t, "NC", config1.Edge.Csr.Province)
assert.Equal(t, "Charlotte", data.Router.Edge.CsrL)
assert.Equal(t, "Charlotte", config.Edge.Csr.Locality)
assert.Equal(t, "Charlotte", config1.Edge.Csr.Locality)
assert.Equal(t, "NetFoundry", data.Router.Edge.CsrO)
assert.Equal(t, "NetFoundry", config.Edge.Csr.Organization)
assert.Equal(t, "NetFoundry", config1.Edge.Csr.Organization)
assert.Equal(t, "Ziti", data.Router.Edge.CsrOU)
assert.Equal(t, "Ziti", config.Edge.Csr.OrganizationalUnit)
assert.Equal(t, "Ziti", config1.Edge.Csr.OrganizationalUnit)
assert.Contains(t, config1.Edge.Csr.Sans.Dns, hostname)
C := "C"
ST := "ST"
L := "L"
O := "O"
OU := "OU"
extAddy := "some.external.address"
_ = os.Setenv(constants.ZitiEdgeRouterCsrCVarName, C)
_ = os.Setenv(constants.ZitiEdgeRouterCsrSTVarName, ST)
_ = os.Setenv(constants.ZitiEdgeRouterCsrLVarName, L)
_ = os.Setenv(constants.ZitiEdgeRouterCsrOVarName, O)
_ = os.Setenv(constants.ZitiEdgeRouterCsrOUVarName, OU)
_ = os.Setenv(constants.ZitiRouterCsrSansDnsVarName, extAddy)
config2, data2 := createRouterConfig([]string{"edge", "--routerName", routerName}, routerOptions, nil)
// Check that the template values now contains the custom external IP override value
@@ -327,4 +330,5 @@ func TestEdgeRouterCsrFields(t *testing.T) {
assert.Equal(t, O, config2.Edge.Csr.Organization)
assert.Equal(t, OU, data2.Router.Edge.CsrOU)
assert.Equal(t, OU, config2.Edge.Csr.OrganizationalUnit)
assert.Contains(t, config2.Edge.Csr.Sans.Dns, extAddy)
}
+1
View File
@@ -70,6 +70,7 @@ func getZitiEnvironmentVariables() []string {
"ZITI_ROUTER_CSR_L",
"ZITI_ROUTER_CSR_O",
"ZITI_ROUTER_CSR_OU",
"ZITI_ROUTER_CSR_SANS_DNS",
}
}
+7
View File
@@ -193,3 +193,10 @@ func getFromEnv(envVarName string, onNotFound envVarNotFound) string {
func NormalizePath(input string) string {
return strings.ReplaceAll(input, "\\", "/")
}
func GetRouterAdvertisedAddress() string {
return getFromEnv(constants.ZitiEdgeRouterAdvertisedHostVarName, HostnameOrNetworkName)
}
func GetRouterSans() string {
return getFromEnv(constants.ZitiRouterCsrSansDnsVarName, GetRouterAdvertisedAddress)
}
+2
View File
@@ -129,4 +129,6 @@ const (
ZitiEdgeRouterCsrOVarDescription = "The organization (O) to use for router CSRs"
ZitiEdgeRouterCsrOUVarName = "ZITI_ROUTER_CSR_OU"
ZitiEdgeRouterCsrOUVarDescription = "The organization unit to use for router CSRs"
ZitiRouterCsrSansDnsVarName = "ZITI_ROUTER_CSR_SANS_DNS"
ZitiRouterCsrSansDnsVarDescription = "The SANS value to use for the CSR in the internal PKI. If not supplied, defaults to ZITI_ROUTER_ADVERTISED_HOST"
)