From 161e9183c62bcc13f351de3be1b7a7a4ce333734 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Thu, 24 Oct 2019 18:48:34 -0600 Subject: [PATCH] add User-Agent string as per RFC 8555 and RFC 7231 --- lib/browser/client-user-agent.js | 6 ++++++ lib/node/client-user-agent.js | 34 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 lib/browser/client-user-agent.js create mode 100644 lib/node/client-user-agent.js 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; +};