From ad792f32dd0531fefaed88fa8f69dda47c2d3a4e Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Tue, 28 Jun 2016 09:32:01 +0200 Subject: [PATCH] now has sslDir implemented --- dist/index.d.ts | 6 +++--- dist/index.js | 37 +++++++++++++++++++++++--------- package.json | 2 +- test/test.js | 7 ++++--- test/test.ts | 5 +++-- ts/index.ts | 56 +++++++++++++++++++++++++++++++++++++------------ 6 files changed, 81 insertions(+), 32 deletions(-) diff --git a/dist/index.d.ts b/dist/index.d.ts index 30ff491..fa4363e 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,7 +1,7 @@ export declare class Cert { - cfEmail: string; - cfKey: string; - sslDir: string; + private _cfEmail; + private _cfKey; + private _sslDir; certificatesPresent: Certificate[]; certificatesValid: Certificate[]; gitOriginRepo: any; diff --git a/dist/index.js b/dist/index.js index 0e3d137..10819b5 100644 --- a/dist/index.js +++ b/dist/index.js @@ -3,26 +3,26 @@ var plugins = require("./cert.plugins"); var paths = require("./cert.paths"); var Cert = (function () { function Cert(optionsArg) { - this.cfEmail = optionsArg.cfEmail; - this.cfKey = optionsArg.cfKey; - this.sslDir = optionsArg.sslDir; + this._cfEmail = optionsArg.cfEmail; + this._cfKey = optionsArg.cfKey; + this._sslDir = optionsArg.sslDir; this.gitOriginRepo = optionsArg.gitOriginRepo; var config = { - cfEmail: this.cfEmail, - cfKey: this.cfKey + cfEmail: this._cfEmail, + cfKey: this._cfKey }; plugins.smartfile.memory.toFsSync(JSON.stringify(config), plugins.path.join(__dirname, "assets/config.json")); } ; Cert.prototype.getDomainCert = function (domainNameArg, optionsArg) { var done = plugins.q.defer(); - if (!checkDomainStillValid(domainNameArg) || optionsArg.force) { + if (!checkDomainsStillValid(domainNameArg) || optionsArg.force) { plugins.shelljs.exec("chmod 700 " + paths.letsencryptSh); plugins.shelljs.exec("chmod 700 " + paths.certHook); plugins.shelljs.exec("bash -c \"" + paths.letsencryptSh + " -c -d " + domainNameArg + " -t dns-01 -k " + paths.certHook + " -o " + paths.certDir + "\""); var fetchedCertsArray = plugins.smartfile.fs.listFoldersSync(paths.certDir); if (fetchedCertsArray.indexOf(domainNameArg) != -1) { - updateSslDir(domainNameArg); + updateSslDirSync(this._sslDir, domainNameArg); } done.resolve(); } @@ -43,12 +43,29 @@ var Certificate = (function () { return Certificate; }()); exports.Certificate = Certificate; -var checkDomainStillValid = function (domainNameArg) { +var checkDomainsStillValid = function (domainNameArg) { return false; }; -var updateSslDir = function (domainNameArg) { +var updateSslDirSync = function (sslDirArg, domainNameArg) { + plugins.smartfile.fs.ensureDirSync(sslDirArg); + var domainCertFolder = plugins.path.join(paths.certDir, domainNameArg); + if (plugins.smartfile.fs.listFoldersSync(paths.certDir).indexOf(domainNameArg) != -1) { + plugins.smartfile.fs.copySync(plugins.path.join(domainCertFolder, "fullchain.pem"), plugins.path.join(sslDirArg, domainNameArg, "fullchain.pem")); + plugins.smartfile.fs.copySync(plugins.path.join(domainCertFolder, "privkey.pem"), plugins.path.join(sslDirArg, domainNameArg, "privkey.pem")); + // create cert config + var certRegex = /.*\-([]0-9]*)\.pem/; + var certFileNameWithTime = plugins.smartfile.fs.listFilesSync(domainCertFolder, certRegex)[1]; + var certTime = parseInt(certRegex.exec(certFileNameWithTime)[1]); + var certConfig = { + domainName: domainNameArg, + created: certTime, + expires: certTime + 7776000 + }; + plugins.smartfile.memory.toFs(JSON.stringify(certConfig), plugins.path.join(sslDirArg, domainNameArg, "config.json")); + } + ; }; var updateGitOrigin = function () { }; -//# sourceMappingURL=data:application/json;charset=utf8;base64,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bmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vY2VydC5wbHVnaW5zXCI7XG5pbXBvcnQgKiBhcyBwYXRocyBmcm9tIFwiLi9jZXJ0LnBhdGhzXCI7XG5cbmV4cG9ydCBjbGFzcyBDZXJ0IHtcbiAgICBjZkVtYWlsOiBzdHJpbmc7XG4gICAgY2ZLZXk6IHN0cmluZztcbiAgICBzc2xEaXI6IHN0cmluZztcbiAgICBjZXJ0aWZpY2F0ZXNQcmVzZW50OkNlcnRpZmljYXRlW107XG4gICAgY2VydGlmaWNhdGVzVmFsaWQ6Q2VydGlmaWNhdGVbXTtcbiAgICBnaXRPcmlnaW5SZXBvO1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnNBcmc6IHtcbiAgICAgICAgY2ZFbWFpbDogc3RyaW5nLFxuICAgICAgICBjZktleTogc3RyaW5nLFxuICAgICAgICBzc2xEaXI6IHN0cmluZyxcbiAgICAgICAgZ2l0T3JpZ2luUmVwbz86IHN0cmluZ1xuICAgIH0pIHtcbiAgICAgICAgdGhpcy5jZkVtYWlsID0gb3B0aW9uc0FyZy5jZkVtYWlsO1xuICAgICAgICB0aGlzLmNmS2V5ID0gb3B0aW9uc0FyZy5jZktleTtcbiAgICAgICAgdGhpcy5zc2xEaXIgPSBvcHRpb25zQXJnLnNzbERpcjtcbiAgICAgICAgdGhpcy5naXRPcmlnaW5SZXBvID0gb3B0aW9uc0FyZy5naXRPcmlnaW5SZXBvO1xuICAgICAgICBsZXQgY29uZmlnID0ge1xuICAgICAgICAgICAgY2ZFbWFpbDogdGhpcy5jZkVtYWlsLFxuICAgICAgICAgICAgY2ZLZXk6IHRoaXMuY2ZLZXlcbiAgICAgICAgfVxuICAgICAgICBwbHVnaW5zLnNtYXJ0ZmlsZS5tZW1vcnkudG9Gc1N5bmMoSlNPTi5zdHJpbmdpZnkoY29uZmlnKSxwbHVnaW5zLnBhdGguam9pbihfX2Rpcm5hbWUsIFwiYXNzZXRzL2NvbmZpZy5qc29uXCIpKTtcbiAgICB9O1xuICAgIGdldERvbWFpbkNlcnQoZG9tYWluTmFtZUFyZzogc3RyaW5nLG9wdGlvbnNBcmc/Ontmb3JjZTpib29sZWFufSkge1xuICAgICAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgICAgICBpZiAoIWNoZWNrRG9tYWluU3RpbGxWYWxpZChkb21haW5OYW1lQXJnKSB8fCBvcHRpb25zQXJnLmZvcmNlKSB7XG4gICAgICAgICAgICBwbHVnaW5zLnNoZWxsanMuZXhlYyhcImNobW9kIDcwMCBcIiArIHBhdGhzLmxldHNlbmNyeXB0U2gpO1xuICAgICAgICAgICAgcGx1Z2lucy5zaGVsbGpzLmV4ZWMoXCJjaG1vZCA3MDAgXCIgKyBwYXRocy5jZXJ0SG9vayk7XG4gICAgICAgICAgICBwbHVnaW5zLnNoZWxsanMuZXhlYyhcImJhc2ggLWMgXFxcIlwiICsgcGF0aHMubGV0c2VuY3J5cHRTaCArIFwiIC1jIC1kIFwiICsgZG9tYWluTmFtZUFyZyArIFwiIC10IGRucy0wMSAtayBcIiArIHBhdGhzLmNlcnRIb29rICsgXCIgLW8gXCIgKyBwYXRocy5jZXJ0RGlyICsgXCJcXFwiXCIpO1xuICAgICAgICAgICAgbGV0IGZldGNoZWRDZXJ0c0FycmF5OnN0cmluZ1tdID0gcGx1Z2lucy5zbWFydGZpbGUuZnMubGlzdEZvbGRlcnNTeW5jKHBhdGhzLmNlcnREaXIpO1xuICAgICAgICAgICAgaWYoZmV0Y2hlZENlcnRzQXJyYXkuaW5kZXhPZihkb21haW5OYW1lQXJnKSAhPSAtMSl7XG4gICAgICAgICAgICAgICAgdXBkYXRlU3NsRGlyKGRvbWFpbk5hbWVBcmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwbHVnaW5zLmJlYXV0eWxvZy5pbmZvKFwiY2VydGlmaWNhdGUgZm9yIFwiICsgZG9tYWluTmFtZUFyZyArIFwiIGlzIHN0aWxsIHZhbGlkISBOb3QgZmV0Y2hpbmcgbmV3IG9uZSFcIik7XG4gICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xuICAgIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDZXJ0aWZpY2F0ZSB7XG4gICAgZG9tYWluTmFtZTogc3RyaW5nO1xuICAgIGNyZWF0aW9uRGF0ZTogRGF0ZTtcbiAgICBleHBpcnlEYXRlOiBEYXRlO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgfTtcbn1cblxubGV0IGNoZWNrRG9tYWluU3RpbGxWYWxpZCA9IChkb21haW5OYW1lQXJnOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbmxldCB1cGRhdGVTc2xEaXIgPSAoZG9tYWluTmFtZUFyZykgPT4ge1xuICAgIFxufVxuXG5sZXQgdXBkYXRlR2l0T3JpZ2luID0gKCkgPT4ge1xuXG59Il19 +//# sourceMappingURL=data:application/json;charset=utf8;base64,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LEVBQUUsUUFBUTtZQUNqQixPQUFPLEVBQUUsUUFBUSxHQUFHLE9BQU87U0FDOUIsQ0FBQztRQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQyxhQUFhLENBQUMsQ0FDM0QsQ0FBQztJQUNOLENBQUM7SUFBQSxDQUFDO0FBQ04sQ0FBQyxDQUFBO0FBRUQsSUFBSSxlQUFlLEdBQUc7QUFFdEIsQ0FBQyxDQUFBIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9jZXJ0LnBsdWdpbnNcIjtcbmltcG9ydCAqIGFzIHBhdGhzIGZyb20gXCIuL2NlcnQucGF0aHNcIjtcblxuZXhwb3J0IGNsYXNzIENlcnQge1xuICAgIHByaXZhdGUgX2NmRW1haWw6IHN0cmluZztcbiAgICBwcml2YXRlIF9jZktleTogc3RyaW5nO1xuICAgIHByaXZhdGUgX3NzbERpcjogc3RyaW5nO1xuICAgIGNlcnRpZmljYXRlc1ByZXNlbnQ6Q2VydGlmaWNhdGVbXTtcbiAgICBjZXJ0aWZpY2F0ZXNWYWxpZDpDZXJ0aWZpY2F0ZVtdO1xuICAgIGdpdE9yaWdpblJlcG87XG4gICAgY29uc3RydWN0b3Iob3B0aW9uc0FyZzoge1xuICAgICAgICBjZkVtYWlsOiBzdHJpbmcsXG4gICAgICAgIGNmS2V5OiBzdHJpbmcsXG4gICAgICAgIHNzbERpcjogc3RyaW5nLFxuICAgICAgICBnaXRPcmlnaW5SZXBvPzogc3RyaW5nXG4gICAgfSkge1xuICAgICAgICB0aGlzLl9jZkVtYWlsID0gb3B0aW9uc0FyZy5jZkVtYWlsO1xuICAgICAgICB0aGlzLl9jZktleSA9IG9wdGlvbnNBcmcuY2ZLZXk7XG4gICAgICAgIHRoaXMuX3NzbERpciA9IG9wdGlvbnNBcmcuc3NsRGlyO1xuICAgICAgICB0aGlzLmdpdE9yaWdpblJlcG8gPSBvcHRpb25zQXJnLmdpdE9yaWdpblJlcG87XG4gICAgICAgIGxldCBjb25maWcgPSB7XG4gICAgICAgICAgICBjZkVtYWlsOiB0aGlzLl9jZkVtYWlsLFxuICAgICAgICAgICAgY2ZLZXk6IHRoaXMuX2NmS2V5XG4gICAgICAgIH1cbiAgICAgICAgcGx1Z2lucy5zbWFydGZpbGUubWVtb3J5LnRvRnNTeW5jKEpTT04uc3RyaW5naWZ5KGNvbmZpZykscGx1Z2lucy5wYXRoLmpvaW4oX19kaXJuYW1lLCBcImFzc2V0cy9jb25maWcuanNvblwiKSk7XG4gICAgfTtcbiAgICBnZXREb21haW5DZXJ0KGRvbWFpbk5hbWVBcmc6IHN0cmluZyxvcHRpb25zQXJnPzp7Zm9yY2U6Ym9vbGVhbn0pIHtcbiAgICAgICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICAgICAgaWYgKCFjaGVja0RvbWFpbnNTdGlsbFZhbGlkKGRvbWFpbk5hbWVBcmcpIHx8IG9wdGlvbnNBcmcuZm9yY2UpIHtcbiAgICAgICAgICAgIHBsdWdpbnMuc2hlbGxqcy5leGVjKFwiY2htb2QgNzAwIFwiICsgcGF0aHMubGV0c2VuY3J5cHRTaCk7XG4gICAgICAgICAgICBwbHVnaW5zLnNoZWxsanMuZXhlYyhcImNobW9kIDcwMCBcIiArIHBhdGhzLmNlcnRIb29rKTtcbiAgICAgICAgICAgIHBsdWdpbnMuc2hlbGxqcy5leGVjKFwiYmFzaCAtYyBcXFwiXCIgKyBwYXRocy5sZXRzZW5jcnlwdFNoICsgXCIgLWMgLWQgXCIgKyBkb21haW5OYW1lQXJnICsgXCIgLXQgZG5zLTAxIC1rIFwiICsgcGF0aHMuY2VydEhvb2sgKyBcIiAtbyBcIiArIHBhdGhzLmNlcnREaXIgKyBcIlxcXCJcIik7XG4gICAgICAgICAgICBsZXQgZmV0Y2hlZENlcnRzQXJyYXk6c3RyaW5nW10gPSBwbHVnaW5zLnNtYXJ0ZmlsZS5mcy5saXN0Rm9sZGVyc1N5bmMocGF0aHMuY2VydERpcik7XG4gICAgICAgICAgICBpZihmZXRjaGVkQ2VydHNBcnJheS5pbmRleE9mKGRvbWFpbk5hbWVBcmcpICE9IC0xKXtcbiAgICAgICAgICAgICAgICB1cGRhdGVTc2xEaXJTeW5jKHRoaXMuX3NzbERpcixkb21haW5OYW1lQXJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGx1Z2lucy5iZWF1dHlsb2cuaW5mbyhcImNlcnRpZmljYXRlIGZvciBcIiArIGRvbWFpbk5hbWVBcmcgKyBcIiBpcyBzdGlsbCB2YWxpZCEgTm90IGZldGNoaW5nIG5ldyBvbmUhXCIpO1xuICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRvbmUucHJvbWlzZTtcbiAgICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQ2VydGlmaWNhdGUge1xuICAgIGRvbWFpbk5hbWU6IHN0cmluZztcbiAgICBjcmVhdGlvbkRhdGU6IERhdGU7XG4gICAgZXhwaXJ5RGF0ZTogRGF0ZTtcbiAgICBjb25zdHJ1Y3RvcigpIHtcblxuICAgIH07XG59XG5cbmludGVyZmFjZSBjZXJ0Q29uZmlnIHtcbiAgICBkb21haW5OYW1lOnN0cmluZztcbiAgICBjcmVhdGVkOm51bWJlcjtcbiAgICBleHBpcmVzOm51bWJlcjtcbn1cblxubGV0IGNoZWNrRG9tYWluc1N0aWxsVmFsaWQgPSAoZG9tYWluTmFtZUFyZzogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5sZXQgdXBkYXRlU3NsRGlyU3luYyA9IChzc2xEaXJBcmc6c3RyaW5nLGRvbWFpbk5hbWVBcmc6c3RyaW5nKSA9PiB7XG4gICAgcGx1Z2lucy5zbWFydGZpbGUuZnMuZW5zdXJlRGlyU3luYyhzc2xEaXJBcmcpO1xuICAgIGxldCBkb21haW5DZXJ0Rm9sZGVyID0gcGx1Z2lucy5wYXRoLmpvaW4ocGF0aHMuY2VydERpcixkb21haW5OYW1lQXJnKVxuICAgIGlmKHBsdWdpbnMuc21hcnRmaWxlLmZzLmxpc3RGb2xkZXJzU3luYyhwYXRocy5jZXJ0RGlyKS5pbmRleE9mKGRvbWFpbk5hbWVBcmcpICE9IC0xKSB7XG4gICAgICAgIHBsdWdpbnMuc21hcnRmaWxlLmZzLmNvcHlTeW5jKFxuICAgICAgICAgICAgcGx1Z2lucy5wYXRoLmpvaW4oZG9tYWluQ2VydEZvbGRlcixcImZ1bGxjaGFpbi5wZW1cIiksXG4gICAgICAgICAgICBwbHVnaW5zLnBhdGguam9pbihzc2xEaXJBcmcsZG9tYWluTmFtZUFyZyxcImZ1bGxjaGFpbi5wZW1cIilcbiAgICAgICAgKTtcbiAgICAgICAgcGx1Z2lucy5zbWFydGZpbGUuZnMuY29weVN5bmMoXG4gICAgICAgICAgICBwbHVnaW5zLnBhdGguam9pbihkb21haW5DZXJ0Rm9sZGVyLFwicHJpdmtleS5wZW1cIiksXG4gICAgICAgICAgICBwbHVnaW5zLnBhdGguam9pbihzc2xEaXJBcmcsZG9tYWluTmFtZUFyZyxcInByaXZrZXkucGVtXCIpXG4gICAgICAgICk7XG4gICAgICAgIC8vIGNyZWF0ZSBjZXJ0IGNvbmZpZ1xuICAgICAgICBsZXQgY2VydFJlZ2V4ID0gLy4qXFwtKFtdMC05XSopXFwucGVtLztcbiAgICAgICAgbGV0IGNlcnRGaWxlTmFtZVdpdGhUaW1lID0gcGx1Z2lucy5zbWFydGZpbGUuZnMubGlzdEZpbGVzU3luYyhkb21haW5DZXJ0Rm9sZGVyLGNlcnRSZWdleClbMV07XG4gICAgICAgIGxldCBjZXJ0VGltZSA9IHBhcnNlSW50KGNlcnRSZWdleC5leGVjKGNlcnRGaWxlTmFtZVdpdGhUaW1lKVsxXSk7XG4gICAgICAgIGxldCBjZXJ0Q29uZmlnOmNlcnRDb25maWcgPSB7XG4gICAgICAgICAgICBkb21haW5OYW1lOiBkb21haW5OYW1lQXJnLFxuICAgICAgICAgICAgY3JlYXRlZDogY2VydFRpbWUsXG4gICAgICAgICAgICBleHBpcmVzOiBjZXJ0VGltZSArIDc3NzYwMDBcbiAgICAgICAgfTtcbiAgICAgICAgcGx1Z2lucy5zbWFydGZpbGUubWVtb3J5LnRvRnMoXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShjZXJ0Q29uZmlnKSxcbiAgICAgICAgICAgIHBsdWdpbnMucGF0aC5qb2luKHNzbERpckFyZyxkb21haW5OYW1lQXJnLFwiY29uZmlnLmpzb25cIilcbiAgICAgICAgKTtcbiAgICB9O1xufVxuXG5sZXQgdXBkYXRlR2l0T3JpZ2luID0gKCkgPT4ge1xuXG59Il19 diff --git a/package.json b/package.json index d130cb3..a7bf53b 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "q": "^1.4.1", "shelljs": "^0.7.0", "smartcli": "^1.0.4", - "smartfile": "^4.0.5", + "smartfile": "^4.0.7", "smartgit": "0.1.0", "smartstring": "^2.0.10", "typings-global": "^1.0.3" diff --git a/test/test.js b/test/test.js index f3a2b92..e0ab7b7 100644 --- a/test/test.js +++ b/test/test.js @@ -2,6 +2,7 @@ require("typings-test"); require("should"); var qenv_1 = require("qenv"); +var path = require("path"); var install_1 = require("../dist/install"); var cert = require("../dist/index"); var testQenv = new qenv_1.Qenv(process.cwd(), process.cwd() + "/.nogit"); @@ -20,17 +21,17 @@ describe("cert", function () { testCert = new cert.Cert({ cfEmail: process.env.CF_EMAIL, cfKey: process.env.CF_KEY, - sslDir: "" + sslDir: path.join(process.cwd(), "test/assets") }); testCert.should.be.instanceof(cert.Cert); }); it("should get a valid certificate", function (done) { this.timeout(120000); - testCert.getDomainCert("sub6.bleu.de").then(function () { + testCert.getDomainCert("sub7.bleu.de").then(function () { done(); }); }); }); }); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsUUFBTyxRQUFRLENBQUMsQ0FBQTtBQUNoQixxQkFBbUIsTUFBTSxDQUFDLENBQUE7QUFFMUIsd0JBQTJCLGlCQUFpQixDQUFDLENBQUE7QUFDN0MsSUFBWSxJQUFJLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFHdEMsSUFBSSxRQUFRLEdBQUcsSUFBSSxXQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztBQUVsRSxJQUFJLFFBQWtCLENBQUM7QUFFdkIsUUFBUSxDQUFDLE1BQU0sRUFBQztJQUNaLFFBQVEsQ0FBQyxTQUFTLEVBQUM7UUFDZixFQUFFLENBQUMsZ0NBQWdDLEVBQUMsVUFBUyxJQUFJO1lBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsc0JBQVksRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDaEIsSUFBSSxFQUFFLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7SUFDRixRQUFRLENBQUMsTUFBTSxFQUFDO1FBQ1osRUFBRSxDQUFDLDRDQUE0QyxFQUFDO1lBQzVDLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7Z0JBQzdCLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07Z0JBQ3pCLE1BQU0sRUFBRSxFQUFFO2FBQ2IsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBQyxVQUFTLElBQUk7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQixRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEMsSUFBSSxFQUFFLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy10ZXN0XCI7XG5pbXBvcnQgXCJzaG91bGRcIjtcbmltcG9ydCB7UWVudn0gZnJvbSBcInFlbnZcIjtcblxuaW1wb3J0IHtzdGFydEluc3RhbGx9IGZyb20gXCIuLi9kaXN0L2luc3RhbGxcIjtcbmltcG9ydCAqIGFzIGNlcnQgZnJvbSBcIi4uL2Rpc3QvaW5kZXhcIjtcblxuXG5sZXQgdGVzdFFlbnYgPSBuZXcgUWVudihwcm9jZXNzLmN3ZCgpLCBwcm9jZXNzLmN3ZCgpICsgXCIvLm5vZ2l0XCIpO1xuXG5sZXQgdGVzdENlcnQ6Y2VydC5DZXJ0O1xuXG5kZXNjcmliZShcImNlcnRcIixmdW5jdGlvbigpe1xuICAgIGRlc2NyaWJlKFwiaW5zdGFsbFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGl0KFwic2hvdWxkIGRvd25sb2FkIGxldHNlbmNyeXB0LnNoXCIsZnVuY3Rpb24oZG9uZSl7XG4gICAgICAgICAgICB0aGlzLnRpbWVvdXQoNTAwMCk7XG4gICAgICAgICAgICBzdGFydEluc3RhbGwoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgIH0pXG4gICAgZGVzY3JpYmUoXCJDZXJ0XCIsZnVuY3Rpb24oKXtcbiAgICAgICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgbmV3IENlcnQgb2JqZWN0IGZyb20gY2xhc3NcIixmdW5jdGlvbigpe1xuICAgICAgICAgICAgdGVzdENlcnQgPSBuZXcgY2VydC5DZXJ0KHtcbiAgICAgICAgICAgICAgICBjZkVtYWlsOiBwcm9jZXNzLmVudi5DRl9FTUFJTCxcbiAgICAgICAgICAgICAgICBjZktleTogcHJvY2Vzcy5lbnYuQ0ZfS0VZLFxuICAgICAgICAgICAgICAgIHNzbERpcjogXCJcIlxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0ZXN0Q2VydC5zaG91bGQuYmUuaW5zdGFuY2VvZihjZXJ0LkNlcnQpO1xuICAgICAgICB9KVxuICAgICAgICBpdChcInNob3VsZCBnZXQgYSB2YWxpZCBjZXJ0aWZpY2F0ZVwiLGZ1bmN0aW9uKGRvbmUpe1xuICAgICAgICAgICAgdGhpcy50aW1lb3V0KDEyMDAwMCk7XG4gICAgICAgICAgICB0ZXN0Q2VydC5nZXREb21haW5DZXJ0KFwic3ViNi5ibGV1LmRlXCIpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH0pXG59KTsiXX0= +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsUUFBTyxRQUFRLENBQUMsQ0FBQTtBQUNoQixxQkFBbUIsTUFBTSxDQUFDLENBQUE7QUFDMUIsSUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFFOUIsd0JBQTJCLGlCQUFpQixDQUFDLENBQUE7QUFDN0MsSUFBWSxJQUFJLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFHdEMsSUFBSSxRQUFRLEdBQUcsSUFBSSxXQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztBQUVsRSxJQUFJLFFBQWtCLENBQUM7QUFFdkIsUUFBUSxDQUFDLE1BQU0sRUFBQztJQUNaLFFBQVEsQ0FBQyxTQUFTLEVBQUM7UUFDZixFQUFFLENBQUMsZ0NBQWdDLEVBQUMsVUFBUyxJQUFJO1lBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsc0JBQVksRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDaEIsSUFBSSxFQUFFLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7SUFDRixRQUFRLENBQUMsTUFBTSxFQUFDO1FBQ1osRUFBRSxDQUFDLDRDQUE0QyxFQUFDO1lBQzVDLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7Z0JBQzdCLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07Z0JBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxhQUFhLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBQyxVQUFTLElBQUk7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQixRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEMsSUFBSSxFQUFFLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy10ZXN0XCI7XG5pbXBvcnQgXCJzaG91bGRcIjtcbmltcG9ydCB7UWVudn0gZnJvbSBcInFlbnZcIjtcbmltcG9ydCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XG5cbmltcG9ydCB7c3RhcnRJbnN0YWxsfSBmcm9tIFwiLi4vZGlzdC9pbnN0YWxsXCI7XG5pbXBvcnQgKiBhcyBjZXJ0IGZyb20gXCIuLi9kaXN0L2luZGV4XCI7XG5cblxubGV0IHRlc3RRZW52ID0gbmV3IFFlbnYocHJvY2Vzcy5jd2QoKSwgcHJvY2Vzcy5jd2QoKSArIFwiLy5ub2dpdFwiKTtcblxubGV0IHRlc3RDZXJ0OmNlcnQuQ2VydDtcblxuZGVzY3JpYmUoXCJjZXJ0XCIsZnVuY3Rpb24oKXtcbiAgICBkZXNjcmliZShcImluc3RhbGxcIixmdW5jdGlvbigpe1xuICAgICAgICBpdChcInNob3VsZCBkb3dubG9hZCBsZXRzZW5jcnlwdC5zaFwiLGZ1bmN0aW9uKGRvbmUpe1xuICAgICAgICAgICAgdGhpcy50aW1lb3V0KDUwMDApO1xuICAgICAgICAgICAgc3RhcnRJbnN0YWxsKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgZG9uZSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9KVxuICAgIGRlc2NyaWJlKFwiQ2VydFwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBhIG5ldyBDZXJ0IG9iamVjdCBmcm9tIGNsYXNzXCIsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHRlc3RDZXJ0ID0gbmV3IGNlcnQuQ2VydCh7XG4gICAgICAgICAgICAgICAgY2ZFbWFpbDogcHJvY2Vzcy5lbnYuQ0ZfRU1BSUwsXG4gICAgICAgICAgICAgICAgY2ZLZXk6IHByb2Nlc3MuZW52LkNGX0tFWSxcbiAgICAgICAgICAgICAgICBzc2xEaXI6IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLFwidGVzdC9hc3NldHNcIilcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGVzdENlcnQuc2hvdWxkLmJlLmluc3RhbmNlb2YoY2VydC5DZXJ0KTtcbiAgICAgICAgfSlcbiAgICAgICAgaXQoXCJzaG91bGQgZ2V0IGEgdmFsaWQgY2VydGlmaWNhdGVcIixmdW5jdGlvbihkb25lKXtcbiAgICAgICAgICAgIHRoaXMudGltZW91dCgxMjAwMDApO1xuICAgICAgICAgICAgdGVzdENlcnQuZ2V0RG9tYWluQ2VydChcInN1YjcuYmxldS5kZVwiKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9KVxufSk7Il19 diff --git a/test/test.ts b/test/test.ts index 6d1f93d..91ba5f3 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,6 +1,7 @@ import "typings-test"; import "should"; import {Qenv} from "qenv"; +import path = require("path"); import {startInstall} from "../dist/install"; import * as cert from "../dist/index"; @@ -24,13 +25,13 @@ describe("cert",function(){ testCert = new cert.Cert({ cfEmail: process.env.CF_EMAIL, cfKey: process.env.CF_KEY, - sslDir: "" + sslDir: path.join(process.cwd(),"test/assets") }); testCert.should.be.instanceof(cert.Cert); }) it("should get a valid certificate",function(done){ this.timeout(120000); - testCert.getDomainCert("sub6.bleu.de").then(() => { + testCert.getDomainCert("sub7.bleu.de").then(() => { done(); }); }) diff --git a/ts/index.ts b/ts/index.ts index be687f6..20f49e1 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -2,9 +2,9 @@ import * as plugins from "./cert.plugins"; import * as paths from "./cert.paths"; export class Cert { - cfEmail: string; - cfKey: string; - sslDir: string; + private _cfEmail: string; + private _cfKey: string; + private _sslDir: string; certificatesPresent:Certificate[]; certificatesValid:Certificate[]; gitOriginRepo; @@ -14,25 +14,25 @@ export class Cert { sslDir: string, gitOriginRepo?: string }) { - this.cfEmail = optionsArg.cfEmail; - this.cfKey = optionsArg.cfKey; - this.sslDir = optionsArg.sslDir; + this._cfEmail = optionsArg.cfEmail; + this._cfKey = optionsArg.cfKey; + this._sslDir = optionsArg.sslDir; this.gitOriginRepo = optionsArg.gitOriginRepo; let config = { - cfEmail: this.cfEmail, - cfKey: this.cfKey + cfEmail: this._cfEmail, + cfKey: this._cfKey } plugins.smartfile.memory.toFsSync(JSON.stringify(config),plugins.path.join(__dirname, "assets/config.json")); }; getDomainCert(domainNameArg: string,optionsArg?:{force:boolean}) { let done = plugins.q.defer(); - if (!checkDomainStillValid(domainNameArg) || optionsArg.force) { + if (!checkDomainsStillValid(domainNameArg) || optionsArg.force) { plugins.shelljs.exec("chmod 700 " + paths.letsencryptSh); plugins.shelljs.exec("chmod 700 " + paths.certHook); plugins.shelljs.exec("bash -c \"" + paths.letsencryptSh + " -c -d " + domainNameArg + " -t dns-01 -k " + paths.certHook + " -o " + paths.certDir + "\""); let fetchedCertsArray:string[] = plugins.smartfile.fs.listFoldersSync(paths.certDir); if(fetchedCertsArray.indexOf(domainNameArg) != -1){ - updateSslDir(domainNameArg); + updateSslDirSync(this._sslDir,domainNameArg); } done.resolve(); } else { @@ -52,12 +52,42 @@ export class Certificate { }; } -let checkDomainStillValid = (domainNameArg: string): boolean => { +interface certConfig { + domainName:string; + created:number; + expires:number; +} + +let checkDomainsStillValid = (domainNameArg: string): boolean => { return false; } -let updateSslDir = (domainNameArg) => { - +let updateSslDirSync = (sslDirArg:string,domainNameArg:string) => { + plugins.smartfile.fs.ensureDirSync(sslDirArg); + let domainCertFolder = plugins.path.join(paths.certDir,domainNameArg) + if(plugins.smartfile.fs.listFoldersSync(paths.certDir).indexOf(domainNameArg) != -1) { + plugins.smartfile.fs.copySync( + plugins.path.join(domainCertFolder,"fullchain.pem"), + plugins.path.join(sslDirArg,domainNameArg,"fullchain.pem") + ); + plugins.smartfile.fs.copySync( + plugins.path.join(domainCertFolder,"privkey.pem"), + plugins.path.join(sslDirArg,domainNameArg,"privkey.pem") + ); + // create cert config + let certRegex = /.*\-([]0-9]*)\.pem/; + let certFileNameWithTime = plugins.smartfile.fs.listFilesSync(domainCertFolder,certRegex)[1]; + let certTime = parseInt(certRegex.exec(certFileNameWithTime)[1]); + let certConfig:certConfig = { + domainName: domainNameArg, + created: certTime, + expires: certTime + 7776000 + }; + plugins.smartfile.memory.toFs( + JSON.stringify(certConfig), + plugins.path.join(sslDirArg,domainNameArg,"config.json") + ); + }; } let updateGitOrigin = () => {