@pengzi/kms 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +17 -2
- package/dist/client.js.map +1 -1
- package/dist/src/client.js +17 -2
- package/dist/types/client.types.d.ts +20 -0
- package/dist/types/client.types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -239,12 +239,35 @@ app.listen(3000);
|
|
|
239
239
|
|
|
240
240
|
为了确保系统的安全性,请遵循以下最佳实践:
|
|
241
241
|
|
|
242
|
-
1.
|
|
242
|
+
1. **使用 TLS/SSL 连接** ⚠️ 重要
|
|
243
|
+
- 生产环境**必须**使用 TLS/SSL 加密连接
|
|
244
|
+
- MongoDB Atlas 默认启用 TLS,连接字符串使用 `mongodb+srv://`
|
|
245
|
+
- 自建 MongoDB 需配置 TLS 证书
|
|
246
|
+
```javascript
|
|
247
|
+
// MongoDB Atlas(自动启用 TLS)
|
|
248
|
+
const kms = new KMSClient({
|
|
249
|
+
connectionString: 'mongodb+srv://user:pass@cluster.mongodb.net/kms',
|
|
250
|
+
databaseName: 'kms'
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// 自建 MongoDB + TLS
|
|
254
|
+
const kms = new KMSClient({
|
|
255
|
+
connectionString: 'mongodb://localhost:27017/kms',
|
|
256
|
+
databaseName: 'kms',
|
|
257
|
+
connectionOptions: {
|
|
258
|
+
tls: true,
|
|
259
|
+
tlsCAFile: '/path/to/ca.pem'
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
```
|
|
263
|
+
详细说明请查看:[TLS 连接指南](./docs/TLS_GUIDE.md)
|
|
264
|
+
|
|
265
|
+
2. **主密码安全**
|
|
243
266
|
- 使用至少12个字符的强密码
|
|
244
267
|
- 包含大小写字母、数字和特殊字符
|
|
245
268
|
- 定期轮换主密码(建议每180天)
|
|
246
269
|
|
|
247
|
-
|
|
270
|
+
3. **密钥轮换**
|
|
248
271
|
- 定期轮换数据库连接凭证(建议每90天)
|
|
249
272
|
- 设置密钥过期时间
|
|
250
273
|
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,OAAO,EACP,GAAG,EACH,QAAQ,EACR,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,SAAS,CAAC;AAkBjB;;GAEG;AACH,qBAAa,SAAS;IAgBR,OAAO,CAAC,OAAO;IAf3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAuB;gBAExB,OAAO,EAAE,gBAAgB,GAAG,yBAAyB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -40,13 +40,28 @@ class KMSClient {
|
|
|
40
40
|
constructor(options) {
|
|
41
41
|
this.options = options;
|
|
42
42
|
const connectionString = this.resolveConnectionString(options);
|
|
43
|
-
|
|
43
|
+
// 构建 MongoClient 配置
|
|
44
|
+
const clientOptions = {
|
|
44
45
|
connectTimeoutMS: this.options.connectionOptions?.connectTimeoutMS || 10000,
|
|
45
46
|
socketTimeoutMS: this.options.connectionOptions?.socketTimeoutMS || 30000,
|
|
46
47
|
serverSelectionTimeoutMS: this.options.connectionOptions?.serverSelectionTimeoutMS || 10000,
|
|
47
48
|
maxPoolSize: this.options.connectionOptions?.maxPoolSize || 10,
|
|
48
49
|
minPoolSize: this.options.connectionOptions?.minPoolSize || 0,
|
|
49
|
-
}
|
|
50
|
+
};
|
|
51
|
+
// 添加 TLS/SSL 配置
|
|
52
|
+
const opts = this.options.connectionOptions;
|
|
53
|
+
if (opts?.tls) {
|
|
54
|
+
clientOptions.tls = true;
|
|
55
|
+
if (opts.tlsCAFile)
|
|
56
|
+
clientOptions.tlsCAFile = opts.tlsCAFile;
|
|
57
|
+
if (opts.tlsCertificateKeyFile)
|
|
58
|
+
clientOptions.tlsCertificateKeyFile = opts.tlsCertificateKeyFile;
|
|
59
|
+
if (opts.tlsAllowInvalidCertificates !== undefined)
|
|
60
|
+
clientOptions.tlsAllowInvalidCertificates = opts.tlsAllowInvalidCertificates;
|
|
61
|
+
if (opts.tlsAllowInvalidHostnames !== undefined)
|
|
62
|
+
clientOptions.tlsAllowInvalidHostnames = opts.tlsAllowInvalidHostnames;
|
|
63
|
+
}
|
|
64
|
+
this.mongoClient = new mongodb_1.MongoClient(connectionString, clientOptions);
|
|
50
65
|
}
|
|
51
66
|
/**
|
|
52
67
|
* 解析连接字符串(支持加密配置)
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qCAA0C;AAgB1C,0DAAsD;AACtD,0EAAsE;AACtE,kEAA8D;AAC9D,oEAAgE;AAChE,sEAAkE;AAClE,gEAA4D;AAC5D,wDAAoD;AACpD,0DAAsD;AACtD,sEAAkE;AAClE,4DAAwD;AAExD,yDAAkE;AAClE,gEAGkC;AAElC;;GAEG;AACH,MAAa,SAAS;IAgBA;IAfZ,WAAW,CAAc;IACzB,EAAE,CAAM;IACR,aAAa,CAAiB;IAC9B,WAAW,CAAqB;IAChC,OAAO,CAAiB;IACxB,QAAQ,CAAkB;IAC1B,SAAS,CAAmB;IAC5B,cAAc,CAAkB;IAChC,UAAU,CAAc;IACxB,WAAW,CAAe;IAC1B,iBAAiB,CAAqB;IACtC,YAAY,CAAgB;IAC5B,SAAS,GAAY,KAAK,CAAC;IAC3B,aAAa,GAAkB,IAAI,CAAC;IAE5C,YAAoB,OAAqD;QAArD,YAAO,GAAP,OAAO,CAA8C;QACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client.js
CHANGED
|
@@ -27,13 +27,28 @@ class KMSClient {
|
|
|
27
27
|
this.connected = false;
|
|
28
28
|
this.currentUserId = null;
|
|
29
29
|
const connectionString = this.resolveConnectionString(options);
|
|
30
|
-
|
|
30
|
+
// 构建 MongoClient 配置
|
|
31
|
+
const clientOptions = {
|
|
31
32
|
connectTimeoutMS: this.options.connectionOptions?.connectTimeoutMS || 10000,
|
|
32
33
|
socketTimeoutMS: this.options.connectionOptions?.socketTimeoutMS || 30000,
|
|
33
34
|
serverSelectionTimeoutMS: this.options.connectionOptions?.serverSelectionTimeoutMS || 10000,
|
|
34
35
|
maxPoolSize: this.options.connectionOptions?.maxPoolSize || 10,
|
|
35
36
|
minPoolSize: this.options.connectionOptions?.minPoolSize || 0,
|
|
36
|
-
}
|
|
37
|
+
};
|
|
38
|
+
// 添加 TLS/SSL 配置
|
|
39
|
+
const opts = this.options.connectionOptions;
|
|
40
|
+
if (opts?.tls) {
|
|
41
|
+
clientOptions.tls = true;
|
|
42
|
+
if (opts.tlsCAFile)
|
|
43
|
+
clientOptions.tlsCAFile = opts.tlsCAFile;
|
|
44
|
+
if (opts.tlsCertificateKeyFile)
|
|
45
|
+
clientOptions.tlsCertificateKeyFile = opts.tlsCertificateKeyFile;
|
|
46
|
+
if (opts.tlsAllowInvalidCertificates !== undefined)
|
|
47
|
+
clientOptions.tlsAllowInvalidCertificates = opts.tlsAllowInvalidCertificates;
|
|
48
|
+
if (opts.tlsAllowInvalidHostnames !== undefined)
|
|
49
|
+
clientOptions.tlsAllowInvalidHostnames = opts.tlsAllowInvalidHostnames;
|
|
50
|
+
}
|
|
51
|
+
this.mongoClient = new mongodb_1.MongoClient(connectionString, clientOptions);
|
|
37
52
|
}
|
|
38
53
|
/**
|
|
39
54
|
* 解析连接字符串(支持加密配置)
|
|
@@ -16,6 +16,16 @@ export interface KMSClientOptions {
|
|
|
16
16
|
serverSelectionTimeoutMS?: number;
|
|
17
17
|
maxPoolSize?: number;
|
|
18
18
|
minPoolSize?: number;
|
|
19
|
+
/** 启用 TLS/SSL(生产环境推荐) */
|
|
20
|
+
tls?: boolean;
|
|
21
|
+
/** TLS 证书文件路径 */
|
|
22
|
+
tlsCAFile?: string;
|
|
23
|
+
/** TLS 证书密钥文件路径 */
|
|
24
|
+
tlsCertificateKeyFile?: string;
|
|
25
|
+
/** 允许无效证书(仅开发环境) */
|
|
26
|
+
tlsAllowInvalidCertificates?: boolean;
|
|
27
|
+
/** 验证主机名 */
|
|
28
|
+
tlsAllowInvalidHostnames?: boolean;
|
|
19
29
|
};
|
|
20
30
|
}
|
|
21
31
|
/**
|
|
@@ -38,6 +48,16 @@ export interface EncryptedKMSClientOptions {
|
|
|
38
48
|
serverSelectionTimeoutMS?: number;
|
|
39
49
|
maxPoolSize?: number;
|
|
40
50
|
minPoolSize?: number;
|
|
51
|
+
/** 启用 TLS/SSL(生产环境推荐) */
|
|
52
|
+
tls?: boolean;
|
|
53
|
+
/** TLS 证书文件路径 */
|
|
54
|
+
tlsCAFile?: string;
|
|
55
|
+
/** TLS 证书密钥文件路径 */
|
|
56
|
+
tlsCertificateKeyFile?: string;
|
|
57
|
+
/** 允许无效证书(仅开发环境) */
|
|
58
|
+
tlsAllowInvalidCertificates?: boolean;
|
|
59
|
+
/** 验证主机名 */
|
|
60
|
+
tlsAllowInvalidHostnames?: boolean;
|
|
41
61
|
};
|
|
42
62
|
}
|
|
43
63
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../src/types/client.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,iBAAiB,CAAC,EAAE;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../src/types/client.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,iBAAiB,CAAC,EAAE;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,yBAAyB;QACzB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,iBAAiB;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB;QACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,oBAAoB;QACpB,2BAA2B,CAAC,EAAE,OAAO,CAAC;QACtC,YAAY;QACZ,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,wBAAwB;IACxB,yBAAyB,EAAE,MAAM,CAAC;IAClC,YAAY;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW;IACX,iBAAiB,CAAC,EAAE;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,yBAAyB;QACzB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,iBAAiB;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB;QACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,oBAAoB;QACpB,2BAA2B,CAAC,EAAE,OAAO,CAAC;QACtC,YAAY;QACZ,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,yBAAyB,CAAC"}
|