@cocreate/server 1.0.0 → 1.0.2
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/CHANGELOG.md +14 -0
- package/package.json +2 -2
- package/src/index.js +32 -26
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.0.2](https://github.com/CoCreate-app/CoCreate-server/compare/v1.0.1...v1.0.2) (2024-01-04)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add '@cocreate/acme' ([73557b9](https://github.com/CoCreate-app/CoCreate-server/commit/73557b97d0a8f47d5cbb2b0b6f66dc87b5aa7a29))
|
|
7
|
+
|
|
8
|
+
## [1.0.1](https://github.com/CoCreate-app/CoCreate-server/compare/v1.0.0...v1.0.1) (2024-01-02)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* remove dependencies ([91eb9f2](https://github.com/CoCreate-app/CoCreate-server/commit/91eb9f2643b154590ea58a431930b137645fd8e3))
|
|
14
|
+
|
|
1
15
|
# 1.0.0 (2024-01-02)
|
|
2
16
|
|
|
3
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cocreate/server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "An intergration with Server and CoCreateJS.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"server",
|
|
@@ -45,6 +45,6 @@
|
|
|
45
45
|
},
|
|
46
46
|
"main": "./src/index.js",
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"
|
|
48
|
+
"@cocreate/acme": "^1.0.0"
|
|
49
49
|
}
|
|
50
50
|
}
|
package/src/index.js
CHANGED
|
@@ -2,35 +2,41 @@ const Https = require('https');
|
|
|
2
2
|
const Http = require('http');
|
|
3
3
|
const fs = require('fs');
|
|
4
4
|
const tls = require('tls');
|
|
5
|
+
const acme = require('@cocreate/acme')
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
try {
|
|
9
|
-
return {
|
|
10
|
-
key: fs.readFileSync(`certificates/${domain}/private.key`),
|
|
11
|
-
cert: fs.readFileSync(`certificates/${domain}/certificate.crt`),
|
|
12
|
-
};
|
|
13
|
-
} catch (error) {
|
|
14
|
-
console.error("Error loading certificates for domain:", domain);
|
|
15
|
-
throw error; // Or handle it by returning default certificates
|
|
16
|
-
}
|
|
17
|
-
}
|
|
7
|
+
let server = {
|
|
8
|
+
acme: new acme(), // Initially an empty object or some placeholder functionality
|
|
18
9
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
10
|
+
loadCertificates(domain) {
|
|
11
|
+
try {
|
|
12
|
+
return {
|
|
13
|
+
key: fs.readFileSync(`/etc/certificates/${domain}/private-key.pem`),
|
|
14
|
+
cert: fs.readFileSync(`/etc/certificates/${domain}/fullchain.pem`),
|
|
15
|
+
};
|
|
16
|
+
} catch (error) {
|
|
17
|
+
console.error("Error loading certificates for domain:", domain);
|
|
18
|
+
throw error; // Or handle it by returning default certificates
|
|
19
|
+
}
|
|
20
|
+
},
|
|
28
21
|
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
async sniCallback(domain, cb) {
|
|
23
|
+
try {
|
|
24
|
+
console.log('sni')
|
|
25
|
+
await server.acme.checkCertificate(domain); // Referencing `this.acme`
|
|
31
26
|
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
const sslContext = tls.createSecureContext(server.loadCertificates(domain));
|
|
28
|
+
cb(null, sslContext);
|
|
29
|
+
} catch (error) {
|
|
30
|
+
console.error("Error in SNI callback for domain:", domain, error);
|
|
31
|
+
cb(error); // handle error or use default context
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
https: null, // Will be set after defining `sniCallback`
|
|
36
|
+
http: Http.createServer()
|
|
37
|
+
};
|
|
36
38
|
|
|
39
|
+
// Creating the HTTPS server with the SNI callback
|
|
40
|
+
server.https = Https.createServer({ SNICallback: server.sniCallback });
|
|
41
|
+
|
|
42
|
+
module.exports = server;
|