2016-11-05 6 views
2

私はUbuntuでnodejsを使用しています。私はSSL 3.0とTLS v1.0の両方を無効にしたいと思っています。ここでノード3.0でSSL 3.0とTLS 1.0を無効にする方法

は私がdigicertに私のウェブサイトをテストするとき、私は問題

enter image description here

これを行うにはどのように任意のアイデアを次しまった

var constants = require('constants') 
    , https = require('https') 
    , path = require('path') 
    , tls = require('tls') 
    , fs = require('fs'); 
var sslOptions = { 
    key: fs.readFileSync('/etc/ssl/private/private.key'), 
    secureProtocol: 'SSLv23_server_method', 
    secureOptions: constants.SSL_OP_NO_SSLv3, 
    secureOptions: constants.SSL_OP_NO_TLSv1, 
    cert: fs.readFileSync('/etc/ssl/certs/STAR_mycert.crt'), 
    ca: [ 
      fs.readFileSync('/etc/ssl/certs/AddTrustExternalCARoot_1.crt'), 
      fs.readFileSync('/etc/ssl/certs/AddTrustExternalCARoot_2.crt'), 
      fs.readFileSync('/etc/ssl/certs/AddTrustExternalCARoot_3.crt') 
     ], 
    //ca: fs.readFileSync('/etc/ssl/certs/AddTrustExternalCARoot.crt'), 
    requestCert: false, 
    rejectUnauthorized: false 
}; 

今私のコードですか?

答えて

4

node.jsについてよく分かりませんが、secureOptionsは、同じキーを複数回辞書に入れることができないため、最初の文字を上書きするだけです。基本的なTLSスタック(OpenSSLは)オプションはビット単位と組み合わせてまたはその代わりに次のことを試していることを必要とするので:

secureOptions: constants.SSL_OP_NO_SSLv3 | constants.SSL_OP_NO_TLSv1, 
+0

うわー、それは私のために働いた。ありがとうございました..あなたに教えてください。 定数.SL_OP_NO_SSLv3 |定数.SSL_OP_NO_TLSv1、何ですか|ここに? –

+0

@AnkitaKashyap:OpenSSLのオプションはビットセットです。 '|'はビット単位であるか、または結果のビット集合が、入力集合のいずれかにあるすべてのビット集合が設定されていることを意味します。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators –

+0

ありがとうございます。あなたは私を救った –

0

受け入れ答えは文書化されていないです。 Node.js v6.3.0以降、暗号モジュール内にはdocumentedの定数属性が実際に使用されています。

... 
const { constants } = require('crypto') 
https.createServer({ 
    secureOptions: constants.SSL_OP_NO_TLSv1 
}, app).listen(443) 
... 
関連する問題