this チュートリアルに従って、両方のルートCA証明書を作成し、それを使用してmongodサーバーのキーに署名しました。これに従って、この構成でmonogdを実行します doc :
net:
ssl:
mode: requireSSL
PEMKeyFile: /home/user/device.pem
CAFile: /home/user/rootCA.pem
allowInvalidCertificates: true
allowInvalidHostnames: true
接続エラーが発生したために追加した最後の2つ。
接続にこれらの行を使用しています:
./mongo <Host>:<port>/<db> -u <user> -p <pwd> --ssl --sslAllowInvalidCertificates --sslCAFile ~/Downloads/rootCA.pem
./mongo <Host>:<port>/<db> -u <user> -p <pwd> --ssl --sslAllowInvalidCertificates
./mongo <Host>:<port>/<db> -u <user> -p <pwd> --ssl
しかし、これらはすべて次のものを生み出します。
MongoDB Shell version v3.4.2
connecting to: mongodb://<Host>:<port>/<db>
2017-03-30T14:39:15.307+0300 E NETWORK [thread1] SSL peer certificate validation failed: self signed certificate
2017-03-30T14:39:15.311+0300 E QUERY [thread1] Error: socket exception [CONNECT_ERROR] for SSL peer certificate validation failed: self signed certificate :
connect@src/mongo/Shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
私が間違っていることは何ですか?私はそれが自己署名証明書であることを知っていますあなたの助けに感謝します
こちらの回答も試してみました: https://stackoverflow.com/questions/21297139/how-do-you-sign-certificate-signing-request-with-your-certification-authority/21340898#21340898
mongod 構成ファイルで、 SSLモード をrequireSSL
に指定します。これは、mongod
サーバーonlyがTLS/SSL暗号化接続を使用および受け入れることを意味します。
クライアントのmongo
Shellは、クライアントのPEMファイルを渡すために -sslPEMKeyFile を指定する必要があります。 mongo Shell SSL configuration または Tutorial:configure SSL for clients も参照してください。
接続エラーが発生したために追加した最後の2つ。
セキュリティに関しては、構成の有効化に特に注意してください。目的については、2つのパラメーターの説明を参照してください: -allowInvalidCertificates および -allowInvalidHostnames