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

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.

主站蜘蛛池模板: 蓝田县| 巫溪县| 军事| 台中市| 阿荣旗| 汾阳市| 长兴县| 玛沁县| 台北县| 宜川县| 高碑店市| 福海县| 平邑县| 岳普湖县| 宣城市| 巴林右旗| 宣威市| 长沙县| 密山市| 万山特区| 读书| 陵川县| 泰和县| 五华县| 宁化县| 辽阳县| 永德县| 黄骅市| 榕江县| 三原县| 大竹县| 清流县| 霍林郭勒市| 商河县| 睢宁县| 屯昌县| 无棣县| 泉州市| 格尔木市| 淳化县| 华安县|