Проблема при подключении к mongoDB с SSL в Docker-контейнере
Я следовал рекомендациям по этой ссылке, затем пытался создать Docker-контейнер для Mongodb с SSL https://ritesh -yadav.github.io /tech / docker-instance-of-mongodb-with-ssl-support /
и
MongoDB Самоподписанное SSL-соединение: сбой проверки сертификата однорангового SSL-сертификата
Я хочусборка mongodb с помощью docker создайте с помощью этого файла конфигурации:
net:
ssl:
CAFile: /home/mongodb/ssl/rootCA.pem
PEMKeyFile: /home/mongodb/ssl/mongodb-server.pem
mode: requireSSL
disabledProtocols: "TLS1_0,TLS1_1"
allowConnectionsWithoutCertificates: true
storage:
journal:
enabled: true
version: '3'
services:
mongoDB:
build:
context: .
image: mongoDB:latest
container_name: mongoDB
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: pass
ports:
- "27017:27017"
FROM mongo:3.4-xenial
COPY scripts /home/mongodb/scripts
COPY ssl /home/mongodb/ssl
COPY mongod.conf /home/mongodb
WORKDIR /home/mongodb
RUN ["chmod", "+x", "/home/mongodb/scripts/"]
RUN ["chmod", "+x", "/home/mongodb/scripts/run.sh"]
RUN ["chmod", "+x", "/home/mongodb/scripts/setup_user.sh"]
CMD ["/home/mongodb/scripts/run.sh"]
EXPOSE 27017
#!/bin/bash
sleep 5
chown -R mongodb:mongodb /home/mongodb
nohup gosu mongodb mongod --dbpath=/data/db &
nohup gosu mongodb mongo admin --eval "help" > /dev/null 2>&1
RET=$?
while [[ "$RET" -ne 0 ]]; do
echo "Waiting for MongoDB to start..."
mongo admin --eval "help" > /dev/null 2>&1
RET=$?
sleep 2
done
bash /home/mongodb/scripts/setup_user.sh
gosu mongodb mongod --dbpath=/data/db --config mongod.conf -auth
#!/bin/bash
echo "************************************************************"
echo "Setting up users..."
echo "************************************************************"
# create root user
nohup gosu mongodb mongo db_name --eval "db.createUser({user: 'admin', pwd: 'pass', roles:[{ role: 'root', db: 'db_name' }]});"
# create app user/database
nohup gosu mongodb mongo db_name --eval "db.createUser({ user: 'user', pwd: 'pass', roles: [{ role: 'readWrite', db: 'db_name' }]});"
echo "************************************************************"
echo "Shutting down"
echo "************************************************************"
nohup gosu mongodb mongo admin --eval "db.shutdownServer();"
Когда я запускаю эту команду в Docker-контейнере после создания БД с помощью docker-compose up
mongo --port 27017 -u admin -p pass --authenticationDatabase db_name --ssl --sslPEMKeyFile /home/mongodb/ssl/mongodb-server.pem --sslCAFile /home/mongodb/ssl/rootCA.pem --host localhost
, тогда я получаю:
MongoDB shell version v3.4.20
connecting to: mongodb://localhost:27017/
2019-04-16T08:13:55.296+0000 E NETWORK [thread1] SSL peer certificate validation failed: self signed certificate
2019-04-16T08:13:55.297+0000 E QUERY [thread1] Error: socket exception [CONNECT_ERROR] for SSL peer certificate validation failed: self signed certificate :
connect@src/mongo/shell/mongo.js:240:13
@(connect):1:6
exception: connect failed
Я что-то не так сделал?