SSL nie jest włączony na serwerze


101

Próbując komunikować się z bazą danych postgres za pomocą go, przygotowując oświadczenie w następujący sposób:

var stmt *sql.Stmt
var err error

stmt, err = db.Prepare(selectStatement)
if err != nil {
    fmt.Printf("db.Prepare error: %v\n",err)
    return err
}

Zgłasza następujący błąd:

db.Prepare error: pq: SSL is not enabled on the server

Jakieś rozwiązanie?

W razie potrzeby mogę dodać więcej informacji.


1
//, skończyło się na tym, że otrzymałem ten błąd w HashiCorp Vault.
Nathan Basanese

2
@NathanBasanese, wiem, że to było dawno temu, ale rozwiązałem to, dołączając parametry ?sslmode=disablepołączenia.
LucasBr

Odpowiedzi:


181

Powinieneś ustanowić połączenie DB bez szyfrowania SSL, na przykład:

db, err := sql.Open("postgres", "user=test password=test dbname=test sslmode=disable") 

dzięki za ten komentarz ratujący życie. btw: ktoś wie, jak ustawić psql, aby obsługiwał SSL dla kontenera Docker?
świątynia

121

Jeśli nazwa źródła danych to adres URL, zrobisz to w następujący sposób:

db, err := sql.Open("postgres", "postgres://username:password@localhost/db_name?sslmode=disable")

sslmode jest po prostu dodawany do url bazy danych jak parametr zapytania.


18

Aby nawiązać połączenie bez SSL, spróbuj

postgres://username:password@host:5432/database?sslmode=disable

//, dodałem to do moich parametrów połączenia i zadziałało pomyślnie. Dzięki, @Harald.
Nathan Basanese

10

Uwaga, proszę:

Dzieje się tak nawet, jeśli wskazałeś a sslmode=disable, ale masz pusty inny parametr. Na przykładdbname=

Na przykład parametry połączenia:

user=test password=test dbname=sslmode=disablewygeneruje również ten błąd , ponieważ nazwa_db jest pusta.


4
To uratowało mnie na mojej lokalnej konfiguracji programisty, ponieważ hasło było tutaj puste.
perelin

0

Oto jak to działa:

db, err := sql.Open("postgres", "postgres://{user}:{password}@{hostname}:{port}/{database-name}?sslmode=disable")
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.