Как подключиться к MongoDB через TLS
У меня поднята база в докер контейнере:
mongodb:
image: mongo:latest
container_name: mongodb
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
command: mongod --tlsMode requireTLS --tlsCertificateKeyFile /etc/ssl/mongodb.pem --tlsCAFile /etc/ssl/ca.pem
ports:
- "27017:27017"
volumes:
- ./data/db:/data/db
- ./certs/mongodb.pem:/etc/ssl/mongodb.pem
- ./certs/ca.pem:/etc/ssl/ca.pem
networks:
- patrebna-network
Как теперь подключиться?
const user = process.env.MONGO_INITDB_ROOT_USERNAME ?? '';
const password = process.env.MONGO_INITDB_ROOT_PASSWORD ?? '';
this.url = `mongodb://${user}:${password}@mongodb:27017/patrebna?authSource=admin&tls=true`;
void mongoose.connect(this.url);
const connect = mongoose.connection;
connect.on(
'error',
console.error.bind(console, 'Error connecting to MongoDB:'),
);
connect.once('open', () => {
console.log('Connected to MongoDB successfully!');
});