ΠΡΠΈΠ²Π΅Ρ Π²ΡΠ΅ΠΌ,
ΠΊΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅, ΠΊΠΎΠ΄ ΡΡΠ°Π±ΠΎΡΠ°Π» Ρ ΡΠ·Π»ΠΎΠΌ 10, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΠ·Π»ΠΎΠΌ 12, ΠΎΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ:
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ½ΠΎ - 3540: ΠΎΡΠΈΠ±ΠΊΠ°: 1425F102 : ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ SSL ΠΏΡΠΎΡΠΎΠΊΠΎΠ»: c : \ ws \ deps \ openssl \ openssl \ ssl \ statem \ statem_lib.c: 1922:
{"message": "ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ localhost: 1433 - ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°", "code": "ESOCKET"}
Π»ΡΠ±Π°Ρ ΠΏΠΎΠΌΠΎΡΡ ? ΠΠ‘ - ΡΡΠΎ Windows 10 64bit, SQL Server - 2012 64bit
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°!
Ρ ΡΠ·Π»ΠΎΠΌ 12+ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΊΠ°ΠΊ οΌ
const config: ConnectionConfig = {
ΡΠ΅ΡΠ²Π΅Ρ: '...',
Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ: {ΡΠΈΠΏ: 'ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ', ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: {ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: '...', ΠΏΠ°ΡΠΎΠ»Ρ: '...'}},
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: {..., encrypt: false }
}
ΠΡΠΈΠ²Π΅Ρ @ c5soft! π
Π― ΡΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Β«ΡΠ΅ΡΠΈΠ»ΠΎΒ» Π·Π΄Π΅ΡΡ Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. π
ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Node.js 12, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ TLS ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠΆΠ΅ΡΡΠΎΡΠ΅Π½Ρ. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Π°Ρ SQL Server Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ TLS 1.2, Π½ΠΎ ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Node.js 12. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ·Π»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, --tls-min-v1.0
), Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ cryptoCredentialsDetails
Connection
ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ minVersion: 'TLSv1'
ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΡΠΈΡ TLS, ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΡΡ Ρ ΡΡΠΈΠΌ, ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Ρ activeDirectory2 Π΄Π»Ρ ΡΠ·Π»Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ LDAPJS: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ Π² tlsOptions ΡΠ΅ΡΠΈΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°!
Ρ ΡΠ·Π»ΠΎΠΌ 12+ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΊΠ°ΠΊ οΌ
const config: ConnectionConfig = {
ΡΠ΅ΡΠ²Π΅Ρ: '...',
Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ: {ΡΠΈΠΏ: 'ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ', ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: {ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: '...', ΠΏΠ°ΡΠΎΠ»Ρ: '...'}},
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: {..., encrypt: false }
}
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ !!!
ΠΡΠΈΠ²Π΅Ρ @ c5soft! π
Π― ΡΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Β«ΡΠ΅ΡΠΈΠ»ΠΎΒ» Π·Π΄Π΅ΡΡ Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. π
ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Node.js 12, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ TLS ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠΆΠ΅ΡΡΠΎΡΠ΅Π½Ρ. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Π°Ρ SQL Server Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ TLS 1.2, Π½ΠΎ ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Node.js 12. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ·Π»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
--tls-min-v1.0
), Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉcryptoCredentialsDetails
Connection
ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡminVersion: 'TLSv1'
ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΡΠΈΡ TLS, ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ nestjs!
Π΄Π»Ρ ΡΠ΅Ρ , Ρ ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² nestjs.
TypeOrmModule.forRoot({
type: 'mssql',
host: 'localhost',
port: 1433,
username: 'root',
password: 'root',
database: 'test',
entities: [],
synchronize: true,
options: {
cryptoCredentialsDetails: {
minVersion: 'TLSv1'
}
}
}),
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°!
Ρ ΡΠ·Π»ΠΎΠΌ 12+ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΊΠ°ΠΊ οΌ
const config: ConnectionConfig = {
ΡΠ΅ΡΠ²Π΅Ρ: '...',
Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ: {ΡΠΈΠΏ: 'ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ', ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: {ΠΈΠΌΡ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: '...', ΠΏΠ°ΡΠΎΠ»Ρ: '...'}},
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: {..., encrypt: false }
}