aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorkegsay <kegan@matrix.org>2022-02-01 16:36:17 +0000
committerGitHub <noreply@github.com>2022-02-01 16:36:17 +0000
commita09d71d231861f8825a4f8f1dfd79311c4c236a6 (patch)
tree23768a595cc4972ec63ddf74c66a2605fac61e74 /cmd
parent9ada4578e36b367c53057c9ee32d044e2ba26395 (diff)
Support CA certificates in CI (#2136)
* Support CA setting in generate-keys * Set DNS names correctly * Use generate-config -server not sed
Diffstat (limited to 'cmd')
-rw-r--r--cmd/generate-config/main.go2
-rw-r--r--cmd/generate-keys/main.go20
2 files changed, 16 insertions, 6 deletions
diff --git a/cmd/generate-config/main.go b/cmd/generate-config/main.go
index a79470d8..60729672 100644
--- a/cmd/generate-config/main.go
+++ b/cmd/generate-config/main.go
@@ -83,7 +83,7 @@ func main() {
if *defaultsForCI {
cfg.AppServiceAPI.DisableTLSValidation = true
cfg.ClientAPI.RateLimiting.Enabled = false
- cfg.FederationAPI.DisableTLSValidation = true
+ cfg.FederationAPI.DisableTLSValidation = false
// don't hit matrix.org when running tests!!!
cfg.FederationAPI.KeyPerspectives = config.KeyPerspectives{}
cfg.MSCs.MSCs = []string{"msc2836", "msc2946", "msc2444", "msc2753"}
diff --git a/cmd/generate-keys/main.go b/cmd/generate-keys/main.go
index 743109f1..bddf219d 100644
--- a/cmd/generate-keys/main.go
+++ b/cmd/generate-keys/main.go
@@ -32,9 +32,12 @@ Arguments:
`
var (
- tlsCertFile = flag.String("tls-cert", "", "An X509 certificate file to generate for use for TLS")
- tlsKeyFile = flag.String("tls-key", "", "An RSA private key file to generate for use for TLS")
- privateKeyFile = flag.String("private-key", "", "An Ed25519 private key to generate for use for object signing")
+ tlsCertFile = flag.String("tls-cert", "", "An X509 certificate file to generate for use for TLS")
+ tlsKeyFile = flag.String("tls-key", "", "An RSA private key file to generate for use for TLS")
+ privateKeyFile = flag.String("private-key", "", "An Ed25519 private key to generate for use for object signing")
+ authorityCertFile = flag.String("tls-authority-cert", "", "Optional: Create TLS certificate/keys based on this CA authority. Useful for integration testing.")
+ authorityKeyFile = flag.String("tls-authority-key", "", "Optional: Create TLS certificate/keys based on this CA authority. Useful for integration testing.")
+ serverName = flag.String("server", "", "Optional: Create TLS certificate/keys with this domain name set. Useful for integration testing.")
)
func main() {
@@ -54,8 +57,15 @@ func main() {
if *tlsCertFile == "" || *tlsKeyFile == "" {
log.Fatal("Zero or both of --tls-key and --tls-cert must be supplied")
}
- if err := test.NewTLSKey(*tlsKeyFile, *tlsCertFile); err != nil {
- panic(err)
+ if *authorityCertFile == "" && *authorityKeyFile == "" {
+ if err := test.NewTLSKey(*tlsKeyFile, *tlsCertFile); err != nil {
+ panic(err)
+ }
+ } else {
+ // generate the TLS cert/key based on the authority given.
+ if err := test.NewTLSKeyWithAuthority(*serverName, *tlsKeyFile, *tlsCertFile, *authorityKeyFile, *authorityCertFile); err != nil {
+ panic(err)
+ }
}
fmt.Printf("Created TLS cert file: %s\n", *tlsCertFile)
fmt.Printf("Created TLS key file: %s\n", *tlsKeyFile)