官术网_书友最值得收藏!

Encrypting communication using TLS/SSL

Communication between the mongod or mongos server and the client mongo shell or applications should be encrypted. This is supported in most MongoDB distributions from 3.0 and onwards but we need to take care that we download the proper version with SSL support.

After that, we need to get a signed certificate from a trusted certificate authority or sign our own. Using self-signed certificates is fine for pre-production systems but in production it will mean that mongo servers won't be able to verify our identity, leaving us susceptible to man-in-the-middle attacks; thus using a proper certificate is highly recommended.

To start our MongoDB server with SSL we need the following:

$ mongod --sslMode requireSSL --sslPEMKeyFile <pem> --sslCAFile <ca>

Where <pem> is our .pem signed certificate file and <ca> is the .pem root certificate from the certificate authority that contains the root certificate chain.

These options can also be defined in our configuration file mongod.conf or mongos.conf in a YAML file format:

net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/ca.pem
disabledProtocols: TLS1_0,TLS1_1,TLS1_2

Here, we specified a PEMKeyFile, a CAFile, and also that we won't allow the server to start with certificates that follow the TLS1_0, TLS1_1 or TLS1_2 versions. These are the available versions for disabledProtocols at this time.

主站蜘蛛池模板: 沙雅县| 宜兰市| 离岛区| 凤翔县| 图片| 鄂州市| 蓝田县| 敖汉旗| 亳州市| 怀化市| 蓬溪县| 前郭尔| 巴里| 开江县| 虎林市| 凤台县| 海城市| 南通市| 无锡市| 突泉县| 米泉市| 子洲县| 来宾市| 灵宝市| 泗洪县| 溧水县| 明星| 射洪县| 建阳市| 祁门县| 增城市| 喀什市| 始兴县| 开封县| 宁晋县| 惠来县| 浦江县| 普安县| 东台市| 犍为县| 长治市|