"self-signed certificate" 에러는 Node.js에서 SQL Server에 접속할 때, SQL Server가 자체 서명된 인증서를 사용하는 경우 발생합니다. 이러한 경우, Node.js에서 기본적으로는 이러한 인증서를 신뢰하지 않기 때문에 접속에 실패합니다.
이러한 오류를 해결하는 방법은 두 가지가 있습니다.
- TLS 옵션 사용:
mssql
모듈을 사용할 때, config
객체에 options
를 추가하여 TLS(Traffic Layer Security) 옵션을 설정할 수 있습니다. trustServerCertificate
옵션을 true
로 설정하면 자체 서명된 인증서를 무시하고 접속할 수 있습니다. 하지만 보안상 취약할 수 있으므로 상용 환경에서는 권장하지 않습니다.
const sql = require('mssql');
const config = {
server: 'your-server-address',
user: 'your-username',
password: 'your-password',
database: 'your-database',
options: {
trustServerCertificate: true // 자체 서명된 인증서 무시
}
};
sql.connect(config)
.then(() => {
console.log('Connected to SQL Server!');
// 여기에 SQL 쿼리 실행 등 원하는 작업을 수행할 수 있습니다.
})
.catch((err) => {
console.error('Error connecting to SQL Server:', err);
});
- 신뢰할 수 있는 인증서 사용: SQL Server에서 사용하는 인증서를 공인 기관에서 발급받은 신뢰할 수 있는 인증서로 대체하거나 Let's Encrypt와 같은 서비스를 이용하여 무료로 발급받은 신뢰할 수 있는 인증서를 사용합니다. 이러한 인증서를 사용하면 기본적인 보안을 유지하면서 오류 없이 SQL Server에 접속할 수 있습니다.
위 방법 중 하나를 선택하여 SQL Server에 접속할 수 있도록 설정해보세요. 자체 서명된 인증서를 사용하는 경우, 보안상 취약할 수 있으므로 상용 환경에서는 신뢰할 수 있는 인증서를 사용하는 것이 좋습니다.