diff --git a/src/certificates.js b/src/certificates.js index 7fc356e3f..d188cbe11 100644 --- a/src/certificates.js +++ b/src/certificates.js @@ -284,12 +284,7 @@ function getFallbackCertificate(domain, callback) { assert.strictEqual(typeof domain, 'string'); assert.strictEqual(typeof callback, 'function'); - var cert = safe.fs.readFileSync(path.join(paths.NGINX_CERT_DIR, domain + '.cert'), 'utf-8'); - var key = safe.fs.readFileSync(path.join(paths.NGINX_CERT_DIR, domain + '.key'), 'utf-8'); - - if (!cert || !key) return callback(new CertificatesError(CertificatesError.NOT_FOUND)); - - callback(null, { cert: cert, key: key }); + callback(null, path.join(paths.NGINX_CERT_DIR, domain + '.cert'), path.join(paths.NGINX_CERT_DIR, domain + '.key')); } function getCertificate(app, callback) { diff --git a/src/domains.js b/src/domains.js index 24c181e16..1259f52d6 100644 --- a/src/domains.js +++ b/src/domains.js @@ -28,6 +28,7 @@ var assert = require('assert'), debug = require('debug')('box:domains'), domaindb = require('./domaindb.js'), path = require('path'), + safe = require('safetydance'), shell = require('./shell.js'), sysinfo = require('./sysinfo.js'), tld = require('tldjs'), @@ -152,10 +153,15 @@ function get(domain, callback) { if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new DomainError(DomainError.NOT_FOUND)); if (error) return callback(new DomainError(DomainError.INTERNAL_ERROR, error)); - certificates.getFallbackCertificate(domain, function (error, fallbackCertificate) { + certificates.getFallbackCertificate(domain, function (error, certFilePath, keyFilePath) { if (error && error.reason !== CertificatesError.NOT_FOUND) return callback(new DomainError(DomainError.INTERNAL_ERROR, error)); - if (fallbackCertificate) result.fallbackCertificate = fallbackCertificate; + var cert = safe.fs.readFileSync(certFilePath, 'utf-8'); + var key = safe.fs.readFileSync(keyFilePath, 'utf-8'); + + if (!cert || !key) return callback(new DomainError(DomainError.INTERNAL_ERROR, error)); + + result.fallbackCertificate = { cert: cert, key: key }; return callback(null, result); });