Avvio rapido all'HTTPS

Questa guida vi mostrerà come rendere operativo l'HTTPS completamente gestito in pochissimo tempo.

Prerequisiti:

  • Competenze di base del terminale / riga di comando
  • Comprensione di base del DNS
  • Un nome di dominio pubblico registrato
  • Accesso esterno alle porte 80 e 443
  • caddy e curl nel vostro PATH

In questo tutorial, sostituite example.com con il vostro effettivo nome di dominio.

Impostate i record A/AAAA del vostro dominio affinché puntino al vostro server. Potete farlo accedendo al vostro provider DNS e gestendo il vostro nome di dominio.

Prima di continuare, verificate che i record siano corretti con una ricerca autoritativa. Sostituite example.com con il vostro nome di dominio e, se state usando IPv6, sostituite type=A con type=AAAA:

curl "https://cloudflare-dns.com/dns-query?name=example.com&type=A" \
  -H "accept: application/dns-json"

Assicuratevi inoltre che il vostro server sia raggiungibile esternamente sulle porte 80 e 443 da un'interfaccia pubblica.

Tutto ciò che dobbiamo fare è avviare Caddy con il vostro nome di dominio nella configurazione. Esistono diversi modi per farlo.

Caddyfile

Questo è il modo più comune per ottenere l'HTTPS.

Create un file chiamato Caddyfile (senza estensione) in cui la prima riga sia il vostro nome di dominio, ad esempio:

example.com

respond "Ciao, privacy!"

Quindi, dalla stessa directory, eseguite:

caddy run

Vedrete Caddy predisporre un certificato TLS e servire il vostro sito tramite HTTPS. Ciò è stato possibile perché l'indirizzo del vostro sito nel Caddyfile conteneva un nome di dominio.

Il comando file-server

Se tutto ciò di cui avete bisogno è servire file statici tramite HTTPS, eseguite questo comando (sostituendo il vostro nome di dominio):

caddy file-server --domain example.com

Vedrete Caddy predisporre un certificato TLS e servire il vostro sito tramite HTTPS.

Il comando reverse-proxy

Se tutto ciò di cui avete bisogno è un semplice reverse proxy tramite HTTPS (come terminatore TLS), eseguite questo comando (sostituendo il vostro nome di dominio e l'effettivo indirizzo del backend):

caddy reverse-proxy --from example.com --to localhost:9000

Vedrete Caddy predisporre un certificato TLS e servire il vostro sito tramite HTTPS.

Configurazione JSON

La regola generale è che qualsiasi host matcher attiverà l'HTTPS automatico.

Pertanto, una configurazione JSON come la seguente abiliterà l'HTTPS automatico pronto per la produzione:

{
	"apps": {
		"http": {
			"servers": {
				"hello": {
					"listen": [":443"],
					"routes": [
						{
							"match": [{
								"host": ["example.com"]
							}],
							"handle": [{
								"handler": "static_response",
								"body": "Ciao, privacy!"
							}]
						}
					]
				}
			}
		}
	}
}