By using ?= to assign that variable only if it's not already set [1].
For Makefile-link, also append the 'nginx' entry using += [2], to
ensure it is always present.
[1]: https://www.gnu.org/software/make/manual/html_node/Setting.html
[2]: https://www.gnu.org/software/make/manual/html_node/Appending.html
DOMAIN ?= example.com
HOSTS ?= www static media kibana es
+FQDNS ?= $(patsubst %, %.$(DOMAIN), $(HOSTS))
+FQDNS += nginx
WILDCARD_KEY ?= /etc/ssl/$(DOMAIN)/wildcard.$(DOMAIN).key
WILDCARD_CERT_CHAIN ?= /etc/ssl/$(DOMAIN)/wildcard.$(DOMAIN)-chain.crt
-FQDNS = $(patsubst %, %.$(DOMAIN), $(HOSTS)) nginx
KEYS = $(patsubst %, %.key, $(FQDNS))
CERTS = $(patsubst %, %.pem, $(FQDNS))
DOMAIN ?= example.com
HOSTS ?= www static media kibana es
DEFAULT ?= www.$(DOMAIN)
+FQDNS ?= $(patsubst %, %.$(DOMAIN), $(HOSTS))
CA_KEY ?= /etc/ssl/ca/key.pem
CA_CERT ?= /etc/ssl/ca/ca.pem
-FQDNS = $(patsubst %, %.$(DOMAIN), $(HOSTS))
KEYS = $(patsubst %, %.key, $(FQDNS))
CERTS = $(patsubst %, %.cert, $(FQDNS))
CHAINED_CERTS = $(patsubst %, %.pem, $(FQDNS))