SQL Server データベースに接続する必要があるクライアントがあります。その SQL Server マシンの FQDN はdb.client.local
、自己署名証明書/有効な暗号化を設定しています。
暗号化フラグが有効になっている Navicat を使用してこのホストに接続すると (hosts ファイルのリモート IP にエントリを追加)、CA が信頼されていないため、信頼されていないとして接続を拒否します。
ノードを使用してnode-mssql
いtedious
て、サーバーに接続してクエリを実行できますが、検証が行われていないようです。node-mssql
証明書を確認するにはどうすればよいですか? この場合、カスタム CA 証明書も提供できる必要があります。
これまでの私のコードは次のとおりです
var sql = require( 'mssql' ),
evilDns = require( 'evil-dns' );
// Set up the mapping so that I can access via their local dns
evilDns.add( 'db.client.local' , '1.2.3.4' );
// Works without erroring
new sql.connect({
user: 'user',
password: 'password',
server: 'db.client.local',
database: 'my-test-database',
port: 1234,
options: {
encrypt: true // seems decorative, connection encrypts without this
}
}).then(
function( connection ) {
return new sql.Request( connection )
.query( `SELECT * FROM TableWithStuffIn` )
.then( function( response ) {
console.log( response );
return connection.close();
} );
},
function( err ) {
console.log( err );
return Promise.reject();
}
)
// This also works without erroring
/*
new sql.connect(
'mssql://user:password@db.client.local:1234/my-test-database?Encrypt=true&TrustServerCertificate=false'
)
*/