![](/img/trans.png)
[英]Preshared keys (TLS-PSK-WITH-AES-256-CBC-SHA) with node.js server
[英]Add/Enable cipher from SSLv3 (DHE-RSA-AES256-SHA) to TLS 1.2 in Node JS TLS
我有一個我無法控制的醫療設備(客戶端)。 當該設備(客戶端)上發生事件時,它會通過 tls v1.2 連接到我的服務器以傳遞數據。 我的錯誤是“沒有共享密碼”。
[錯誤:3160:錯誤:1417A0C1:SSL 例程:tls_post_process_client_hello:無共享密碼:openssl\\ssl\\statem\\statem_srvr.c:1419:]
經過長時間的調查,node js 10.9.0 似乎不支持客戶端密碼套件。 我試圖覆蓋默認密碼(DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA。請參閱下面的代碼)並且考慮了更改,因為我嘗試與 openssl s_client 連接並失敗,因為它不支持密碼。 如果我將密碼設置為 ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA openssl s_client 連接。 如果我在列表中使用 openssl ciphers -sslv3,我會看到 DHE-RSA-AES128-SHA 和 DHE-RSA-AES256-SHA。 但是客戶端沒有連接。
我的服務器代碼:
const tls = require('tls'); const fs = require('fs'); tls.DEFAULT_CIPHERS = 'DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA'; const options = { key: fs.readFileSync(__dirname + '\\\\cert\\\\private-key.pem'), cert: fs.readFileSync(__dirname + '\\\\cert\\\\cert.pem'), rejectUnauthorized: false }; const server = tls.createServer(options, (socket) => { console.log('server connected', socket.authorized ? 'authorized' : 'unauthorized'); socket.write('welcome!\\n'); socket.setEncoding('utf8'); socket.pipe(socket); }); server.on('tlsClientError', (error, tlsSocket) => { console.log(error); }); server.listen(8081, () => { console.log('server bound', 8011); });
OpenSSL s_client
密碼 ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA
密碼 DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA
如何添加或解決這個舊密碼?
** 新選項 **
const options = {
key: fs.readFileSync(__dirname + '/cert/sentinel-private-key.pem'),
cert: fs.readFileSync(__dirname + '/cert/sentinel-cert.pem'),
dhparam: fs.readFileSync(__dirname + '/cert/dhparams.pem'),
ca: [fs.readFileSync(__dirname + '/cert/ca-cert.ca')],
rejectUnauthorized: false
客戶端要求您的服務器使用基於 DHE 的密碼套件支持完美的前向保密。 為了實現這一點,您需要使用適當的 DH 參數配置您的服務器。
首先,您必須生成參數,例如:
openssl dhparam -out dhparams.pem 2048
接下來,您需要配置您的應用程序以使用它們。 在 Nodes.js 中執行此操作的說明可在此處獲得:
https://nodejs.org/docs/latest-v10.x/api/tls.html#tls_perfect_forward_secrecy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.