<p>退屈な6.1.2はノード12.4.0に問題があります:SSLルーチン:ssl_choose_client_version:サポートされていないプロトコル</p>

作成日 2019年06月12日  ·  5コメント  ·  ソース: tediousjs/tedious

こんにちは、誰でも、
タイトルにあるように、ノード10で機能するコードは、ノード12では機能しません。次のように報告されます。

接続が失われました-3540ルーチン:ssl_choose_client_version :サポートされていないプロトコル:c :\ ws \ deps \ openssl \ openssl \ ssl \ statem \ statem_lib.c:1922:
{"message": " localhost:1433への接続に失敗しました-ストリームが破棄された後、writeを呼び出すことができません"、 "code": "ESOCKET"}

何か助けはありますか? OSはWindows10 64ビット、SQLServerは201264ビットです

最も参考になるコメント

問題が解決しました!
ノード12以降では、構成が次のように変更されました。
const config:ConnectionConfig = {
サーバー: '...'、
認証:{タイプ: 'デフォルト'、オプション:{ユーザー名: '...'、パスワード: '...'}}、
オプション:{...、 encrypt:false }
}

全てのコメント5件

問題が解決しました!
ノード12以降では、構成が次のように変更されました。
const config:ConnectionConfig = {
サーバー: '...'、
認証:{タイプ: 'デフォルト'、オプション:{ユーザー名: '...'、パスワード: '...'}}、
オプション:{...、 encrypt:false }
}

ねえ@ c5soft! 👋

暗号化を無効にすると、ここで問題が「解決」したことを理解しています。 これはユースケースでは許容できるかもしれませんが、暗号化を無効にすることは実際には解決策ではありません。 😅

同様のエラーが発生した場合、これはNode.js 12以降、デフォルトのTLS設定が強化されたためです。 ほとんどの場合、SQLServerはTLS1.2をサポートしていませんが、Node.js 12ではデフォルトで必要です。これは、ノードの起動時にコマンドラインフラグ(例: --tls-min-v1.0 )を使用するか、カスタムを渡すことで変更できます。 cryptoCredentialsDetails minVersion: 'TLSv1'または使用する必要のあるTLSバージョンを指定するConnectionコンストラクターのcryptoCredentialsDetailsオプション。

誰かがこれに遭遇した場合に備えて、LDAPJSに基づくノードのactiveDirectory2でも同じことが起こりました。そのオプションをtlsOptionsに追加すると、問題が解決しました。

問題が解決しました!
ノード12以降では、構成が次のように変更されました。
const config:ConnectionConfig = {
サーバー: '...'、
認証:{タイプ: 'デフォルト'、オプション:{ユーザー名: '...'、パスワード: '...'}}、
オプション:{...、 encrypt:false }
}

ありがとう !!!

ねえ@ c5soft! 👋

暗号化を無効にすると、ここで問題が「解決」したことを理解しています。 これはユースケースでは許容できるかもしれませんが、暗号化を無効にすることは実際には解決策ではありません。 😅

同様のエラーが発生した場合、これはNode.js 12以降、デフォルトのTLS設定が強化されたためです。 ほとんどの場合、SQLServerはTLS1.2をサポートしていませんが、Node.js 12ではデフォルトで必要です。これは、ノードの起動時にコマンドラインフラグ(例: --tls-min-v1.0 )を使用するか、カスタムを渡すことで変更できます。 cryptoCredentialsDetails minVersion: 'TLSv1'または使用する必要のあるTLSバージョンを指定するConnectionコンストラクターのcryptoCredentialsDetailsオプション。

どうもありがとうございます!
それは私のnestjsプロジェクトで動作します!

nestjsで同じ問題を抱えている人のために。

TypeOrmModule.forRoot({
      type: 'mssql',
      host: 'localhost',
      port: 1433,
      username: 'root',
      password: 'root',
      database: 'test',
      entities: [],
      synchronize: true,
       options: {
          cryptoCredentialsDetails: {
            minVersion: 'TLSv1'
          }
        }
}),
このページは役に立ちましたか?
0 / 5 - 0 評価