2023-03-28 18:39:22 +00:00
|
|
|
// Copyright (c) HashiCorp, Inc.
|
2023-08-11 13:12:13 +00:00
|
|
|
// SPDX-License-Identifier: BUSL-1.1
|
2023-03-28 18:39:22 +00:00
|
|
|
|
2022-09-06 23:58:13 +00:00
|
|
|
package connect
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"net/url"
|
|
|
|
)
|
|
|
|
|
|
|
|
type SpiffeIDServer struct {
|
|
|
|
Host string
|
|
|
|
Datacenter string
|
|
|
|
}
|
|
|
|
|
|
|
|
// URI returns the *url.URL for this SPIFFE ID.
|
|
|
|
func (id SpiffeIDServer) URI() *url.URL {
|
|
|
|
var result url.URL
|
|
|
|
result.Scheme = "spiffe"
|
|
|
|
result.Host = id.Host
|
|
|
|
result.Path = fmt.Sprintf("/agent/server/dc/%s", id.Datacenter)
|
|
|
|
return &result
|
|
|
|
}
|
2022-09-09 18:57:30 +00:00
|
|
|
|
|
|
|
// PeeringServerSAN returns the DNS SAN to attach to server certificates
|
|
|
|
// for control-plane peering traffic.
|
|
|
|
func PeeringServerSAN(dc, trustDomain string) string {
|
|
|
|
return fmt.Sprintf("server.%s.peering.%s", dc, trustDomain)
|
|
|
|
}
|