diff --git a/lib/browser/client-user-agent.js b/lib/browser/client-user-agent.js new file mode 100644 index 0000000..f64eb37 --- /dev/null +++ b/lib/browser/client-user-agent.js @@ -0,0 +1,6 @@ +'use strict'; + +var UserAgent = module.exports; +UserAgent.get = function () { + return false; +}; diff --git a/lib/node/client-user-agent.js b/lib/node/client-user-agent.js new file mode 100644 index 0000000..4c71dad --- /dev/null +++ b/lib/node/client-user-agent.js @@ -0,0 +1,34 @@ +'use strict'; + +var os = require('os'); + +var UserAgent = module.exports; +UserAgent.get = function(me) { + // ACME clients MUST have an RFC7231-compliant User-Agent + // ex: Greenlock/v3 ACME.js/v3 node/v12.0.0 darwin/17.7.0 Darwin/x64 + // + // See https://tools.ietf.org/html/rfc8555#section-6.1 + // And https://tools.ietf.org/html/rfc7231#section-5.5.3 + // And https://community.letsencrypt.org/t/user-agent-flag-explained/3843/2 + + var ua = + 'ACME.js/v3 ' + + process.release.name + + '/' + + process.version + + ' ' + + os.platform() + + '/' + + os.release() + + ' ' + + os.type() + + '/' + + process.arch; + + var pkg = me.packageAgent; + if (pkg) { + ua = pkg + ' ' + ua; + } + + return ua; +};