cyrilgdn / terraform-provider-postgresql

Terraform PostgreSQL provider
https://www.terraform.io/docs/providers/postgresql/
Mozilla Public License 2.0
356 stars 181 forks source link

When scheme=awspostgres, sslmode is not respected, causing x509: certificate signed by unknown authority #343

Open adkafka opened 10 months ago

adkafka commented 10 months ago

If we setup a provider as such:

provider "postgresql" {
  scheme    = "awspostgres"
  sslmode   = "require"
 ...
}

And connect to an RDS instance whose CA comes from rds-ca-ecc384-g1, we get an unexpected error:

│ Error: Error connecting to PostgreSQL server database-name.region.rds.amazonaws.com (scheme: awspostgres): tls: failed to verify certificate: x509: certificate signed by unknown authority

Based on sslmode = "require", I expect no certificate validation.

I believe the issue is here: https://github.com/cyrilgdn/terraform-provider-postgresql/blob/fea83f376887d76424148b665b47c7f5c72371cc/postgresql/config.go#L205-L210

We should change this to if c.Scheme == "postgres" || c.Scheme == "awspostgres"

I'm able to workaround this by just setting scheme=postgres.

Terraform Version

$ terraform -v
Terraform v1.5.2
on darwin_amd64
+ provider registry.terraform.io/cyrilgdn/postgresql v1.20.0
+ provider registry.terraform.io/hashicorp/aws v4.59.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.18.1
+ provider registry.terraform.io/hashicorp/local v2.4.0
+ provider registry.terraform.io/hashicorp/random v3.4.3

Affected Resource(s)

Terraform Configuration Files

See above snipped

Debug Output

N/A

Panic Output

N/A

Expected Behavior

We should be able to connect with above config to an RDS instance.

Actual Behavior

Error

Steps to Reproduce

Create RDS instance with issuing CA rds-ca-ecc384-g1 (I expect the same behavior for other new CAs too) Try to connect to the provider using scheme = "awspostgres" and sslmode = "require"

Important Factoids

No

References

None

dstebukov commented 8 months ago

I've got this error trying to create DB in the AWS serverless v1 cluster, CA rds-ca-rsa2048-g1

ghost commented 8 months ago

same error with scheme = "gcppostgres"

pexa-afarrugia commented 7 months ago

AWS given customers 12 months to migrate to the new CA. This is now a important issue that needs resolving

grilla99 commented 7 months ago

Having a similar issue myself using rds-ca-rsa2048-g1 and scheme:awspostgres. Changing from awspostgres to postgres fixes it, what are the implications of this?

romikoops commented 3 months ago

The problem has gone after upgrading to 1.22.0 from 1.20.0