UTALI

書き溜めておいた技術記事や旅行記のバックアップです。

Node.js の MongoDB クライアント Mongoose で SSL通信 を有効化する方法

f:id:mochizuki_p:20161005031521j:plain
リモートサーバーのMongoDBでSSL通信が有効化されているという前提で、アプリケーションサーバーのMongooseでSSL通信を実行する方法です。

オプションsslを有効化する。

リモートサーバーのMongoDBクライアントにアクセスする際には

mongodb://{ipアドレス}:{MongoDBの利用しているポート番号}/{コレクション名}

の形式でアクセスします。これにhttpのURLと同じようにクエリを設定すればOKです。つまり、?ssl=trueを追記します。

const mongoose = require("mongoose");
mongoose.connect("mongodb://21.53.124.3:27017/test?ssl=true",(err)=>{
if(err) throw err;
)

またはconnect()の第二引数に以下のオプションを指定します。

const mongoose = require("mongoose");
const options = {
  server: { ssl: true }
}
mongoose.connect("mongodb://21.53.124.3:27017/test",options,(err)=>{
if(err) throw err;
)

自己署名の証明書を利用する場合(非推奨)はsslValidateをfalseにします。

const mongoose = require("mongoose");
const options = {
  server: { ssl: true,sslValidate:false }
}
mongoose.connect("mongodb://21.53.124.3:27017/test",options,(err)=>{
if(err) throw err;
)