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

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.

主站蜘蛛池模板: 怀集县| 富顺县| 廉江市| 平塘县| 夏邑县| 平泉县| 县级市| 鸡东县| 临桂县| 唐海县| 蕲春县| 岚皋县| 墨脱县| 紫金县| 白水县| 伊宁县| 和田市| 东光县| 南投县| 凉城县| 上杭县| 临汾市| 凉山| 乐业县| 新野县| 上犹县| 康保县| 米脂县| 南开区| 武山县| 县级市| 富阳市| 壶关县| 满城县| 醴陵市| 育儿| 重庆市| 乌兰浩特市| 多伦县| 射洪县| 长治县|