@gdjiami/cli
Version:
CLI for build front end project.
37 lines (36 loc) • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCerts = void 0;
var tslib_1 = require("tslib");
/**
* create ssl certificate
*/
var path_1 = tslib_1.__importDefault(require("path"));
var fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
var createCertificate_1 = tslib_1.__importDefault(require("webpack-dev-server/lib/utils/createCertificate"));
function getCerts() {
var certPath = path_1.default.join(__dirname, '../ssl/server.pem');
var certExisted = fs_extra_1.default.existsSync(certPath);
// 检查是否过期
if (certExisted) {
var certTtl = 1000 * 60 * 60 * 24;
var certStat = fs_extra_1.default.statSync(certPath);
var now = new Date();
// cert is more than 30 days old, kill it with fire
if ((now.getTime() - certStat.ctime.getTime()) / certTtl > 30) {
fs_extra_1.default.removeSync(certPath);
certExisted = false;
}
}
if (!certExisted) {
var attrs = [{ name: 'commonName', value: 'localhost' }];
var pems = createCertificate_1.default(attrs);
fs_extra_1.default.writeFileSync(certPath, pems.private + pems.cert, { encoding: 'utf-8' });
}
var cert = fs_extra_1.default.readFileSync(certPath);
return {
key: cert,
cert: cert,
};
}
exports.getCerts = getCerts;