#node.js #database #postgresql #ssl #digital-ocean
#node.js #База данных #postgresql #ssl #digital-ocean
Вопрос:
Я пишу API с использованием nodejs и express. Моя база данных была взломана, и я решил использовать базу данных, управляемую Digital Ocean. Для базы данных, управляемой Digital Ocean, требуется SSL, и они предоставляют вам ТОЛЬКО один сертификат CA. Во всех руководствах для SSL требуется 3 файла. Я не нашел ни одного руководства о том, как подключить node-pg только с одним файлом. Я наконец нашел решение и хочу поделиться им с сообществом. Надеюсь, я сэкономлю кому-то несколько часов копания.
Ответ №1:
Сертификат, который предоставляет вам Digital Ocean, является корневым сертификатом, а НЕ сертификатом клиента. В node-pg cert
ссылается на сертификат клиента и CA
ссылается на корневой сертификат. CA
опция — это та, которую следует использовать, а не Cert
.
- CA: root.crt (для входящих сообщений; Digital Ocean предоставляет вам это)
- Ключ: postgresql.key (он вам не нужен)
- Сертификат: сертификат клиента (он вам не нужен)
const config = {
database: 'database-name',
host: 'host-or-ip',
user: 'username',
password: 'password',
port: 1234,
// this object will be passed to the TLSSocket constructor
ssl: {
ca: fs.readFileSync('/path/to/digitalOcean/certificate.crt').toString()
}
}
Если этот ответ был полезен для вас, поднимите большой палец вверх, чтобы другие люди тоже могли его найти.