SSL?
https://dontasktoask.com/
Да, переформулирую. Пытаюсь подключиться к БД Постгрес на Rust. Без SSL все подключается. БД находится на стороннем сервере, естественно там используется SSL, до это тестировал все локально. При попытке подключиться к Постгресу, естественно выходит ошибка, так как не используется SSL. Нашел пример подключения с SSL: https://docs.rs/postgres-openssl/latest/postgres_openssl/ Но вот этот *.pem ключ (это же ключ?) как я его должен создать? И как будет правильно подключиться к БД?
Это не ключ, это путь к CA, на котором будет проверяться сертификат сервера. Обычно их много и не надо явно определять. Я бы попробовал сначала без вызова этой функци и подключиться.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=0a174659b1dcc7b34cb7ec98a03a2258 Вот так вот пытаюсь подключиться, дает следующую ошибку: thread '<unnamed>' panicked at 'called Result::unwrap() on an Err value: Error { kind: Tls, cause: Some(ConnectError { error: Error { code: ErrorCode(1), cause: Some(Ssl(ErrorStack([Error { code: 337047686, library: "SSL routines", function: "tls_process_server_certificate", reason: "certificate verify failed", file: "../ssl/statem/statem_clnt.c", line: 1913 }]))) }, verify_result: X509VerifyResult { code: 18, error: "self signed certificate" } }) }', src/database/db.rs:45:10 45:10 - указывает на .unwrap() Что это может значить и как починить? Или где про это почитать
Не получилось подтвердить серверный сертификат, т.к. он самоподписанный, а не подписан другим CA. Обычно так бывает, если не нашёлся нужный CA(может как раз надо вызвать ту функцию) или на сервере кто-то поставил свой собственный сертификат
То есть я так понимаю надо обращаться к владельцу сервера и спрашивать путь до файла сертификата?
Ну надо чтобы он дал либо сам сертфикат, либо корневой сертификат CA
Спасибо, попробую с Хероку выпросить это
Нет. Он не знает, какой у тебя на клиенте путь. Ты можешь сертификат посмотреть и сам, подключившись прямо на порт базы openssl s_client -connect host:5432 -showcerts | openssl x509 -dates -noout Но если там действительно самоподписной, то это уже не безопасность.
Обсуждают сегодня