diff --git a/src/cert/caas.js b/src/cert/caas.js new file mode 100644 index 000000000..972c28189 --- /dev/null +++ b/src/cert/caas.js @@ -0,0 +1,18 @@ +'use strict'; + +exports = module.exports = { + getCertificate: getCertificate +}; + +var assert = require('assert'), + debug = require('debug')('box:cert/caas.js'); + +function getCertificate(domain, outdir, callback) { + assert.strictEqual(typeof domain, 'string'); + assert.strictEqual(typeof outdir, 'string'); + assert.strictEqual(typeof callback, 'function'); + + debug('getCertificate: using fallback certificate', domain); + + return callback(null, 'cert/host.cert', 'cert/host.key'); +} diff --git a/src/certificates.js b/src/certificates.js index 9b859ea1a..6cd9fa735 100644 --- a/src/certificates.js +++ b/src/certificates.js @@ -4,6 +4,7 @@ var acme = require('./cert/acme.js'), assert = require('assert'), + caas = require('./cert/caas.js'), config = require('./config.js'), constants = require('./constants.js'), debug = require('debug')('box:src/certificates'), @@ -164,10 +165,7 @@ function ensureCertificate(domain, callback) { settings.getTlsConfig(function (error, tlsConfig) { if (error) return callback(error); - if (tlsConfig.provider === 'caas') { - debug('ensureCertificate: %s caas provider. using fallback certificate', domain); - return callback(null, 'cert/host.cert', 'cert/host.key'); - } + var api = tlsConfig.provider === 'caas' ? caas : acme; var certFilePath = path.join(paths.APP_CERTS_DIR, domain + '.cert'); var keyFilePath = path.join(paths.APP_CERTS_DIR, domain + '.key'); @@ -179,7 +177,7 @@ function ensureCertificate(domain, callback) { debug('Using le-acme to get certificate for %s', domain); - acme.getCertificate(domain, paths.APP_CERTS_DIR, function (error) { // TODO: Should use backend + api.getCertificate(domain, paths.APP_CERTS_DIR, function (error) { // TODO: Should use backend if (error) return callback(error); callback(null, certFilePath, keyFilePath);