Installation de Caddy Server sur Ubuntu

Installation de Caddy Server sur Ubuntu
TLS est important pour tous les sites Web et les applications Web. S'il existe une application qui utilise HTTP ou fait un e-mail, il a besoin de TLS. TLS assure la confidentialité, l'intégrité et l'authenticité de votre contenu. Avec les autorités de certificat TLS gratuites comme Let's Encrypt et CloudFlare, TLS se transforme davantage en norme plutôt que dans un cas spécial.Cependant, allumer le TLS est souvent un processus massivement compliqué. Il a également des ramifications de sécurité massives, si les configurations sont mal gérées, ou si le paradis interdit, vous divulguez accidentellement votre clé TLS privée. Pour atténuer certains de ces risques et aussi nous faciliter la vie, il y a un nouveau serveur Web dans la ville. Caddy parle HTTP / 2, et il est livré avec TLS activé par la boîte. Cela signifie que vous n'avez pas à configurer manuellement HTTP à HTTP.

Avec Caddy Web Server, vous obtenez HTTPS ou rien. Alors voyons comment vous pouvez installer Caddy sur Ubuntu et configurez-le pour servir votre application Web. Nous obtiendrons nos certificats TLS de LetSencrypt.

Installation

Supposons que vous ayez un VPS avec adresse IP: 10.20.30.40 et un sous-domaine FQDN.exemple.com qui est un disque pointe sur cette adresse IP.
Le VPS exécute Ubuntu 18.04 LTS Server Edition et les configurations suivantes sont effectuées en tant qu'utilisateur racine.

Étape 1: Installation du serveur Web Caddy

Caddy est écrit en Go et peut fonctionner comme un binaire exécutable autonome. Cependant, il existe différents plugins que vous pouvez y construire pour des serveurs DNS spécifiques, etc. Nous installerons le binaire plain sans aucun plugin afin qu'il fonctionne dans toutes les personnalisations.

Pour obtenir votre binaire, visitez leur page de téléchargements officiels et sélectionnez tous les plugins et télémétrie dont vous avez besoin. Ci-dessous, il sera une commande bash pour télécharger et placer le caddy Server Binary au bon emplacement. En tant qu'utilisateur racine, exécutez:

$ curl https: // getcaddy.com | bash -s personnel

Une fois cela fait, nous pouvons localiser le binaire, en fonctionnant:

$ où est caddie
caddie: / usr / local / bin / caddy

Si vous avez besoin de supprimer le serveur ou de le mettre à jour avec un exécutable plus récent, vous savez maintenant où chercher.

Étape 2: tester votre site Web

Si vous n'avez pas de site Web, créez simplement un dossier vide et exécutez les commandes là-dedans. Vous pouvez obtenir une erreur 404 sur votre navigateur, mais la configuration du serveur peut toujours être testée. Si vous avez un site Web Traverse au répertoire où se trouve le webroot de votre site Web à. Comme exemple typique, je sélectionnerai le / var / www / mysite Par exemple avec l'index suivant.html stocké à l'intérieur.

/ var / www / mysite / index.html



Cette page est servie par Caddy Server


Cette page est servie par Caddy Server


C'est un paragraphe.



C'est suffisant pour nous aider à démarrer. Maintenant dans le même répertoire que cet index.Page HTML, exécutez la gamme suivante:

$ caddy
Activer les fonctionnalités de confidentialité… fait.
http: //: 2015

AVERTISSEMENT: LIMIT DE DESCRIPTORS FICHIER 1024 est trop faible pour les serveurs de production. Au moins 8192 est recommandé. Correction avec 'ulimit -n 8192'.

Laissez Caddy courir dans cet état.

Vous pouvez vous rendre sur la propriété publique publique de votre serveur au numéro de port 2015 pour tester ceci: http: // 10.20.30.40: 2015 Assurez-vous que votre pare-feu ne bloque pas ce port.

Et vous verrez cet index.HTML est automatiquement servi. Cela suit l'ancienne convention selon laquelle la première page de tout site Web est nommée index, ce que la plupart des serveurs Web comme Nginx, Apache et même Caddy servent de première page, même lorsque vous ne spécifiez pas cette page en utilisant / index.html à la fin de l'URL.

Étape 3: Configuration de HTTPS

Maintenant que vous avez confirmé que votre site Web fonctionne bien avec Caddy et que vous pouvez être servi avec lui, il est temps de configurer HTTPS. Pour ce faire, vous pouvez utiliser l'interface de ligne de commande ou utiliser un fichier de configuration appelé CaddyFile. Nous utiliserons d'abord la ligne de commande.

Dans le même répertoire que votre site Web, exécutez la commande suivante:

$ caddy -host sous-domaine.exemple.com
## Pour la première fois, il vous demandera votre adresse e-mail afin que vous puissiez obtenir
Notification de renouvellement de certificat de LetSencrypt

Sortir:

Activer les fonctionnalités de confidentialité…
Vos sites seront servis automatiquement sur HTTPS en utilisant Let's Encrypt.
En continuant, vous acceptez l'accord sur les abonnés Let's Encrypt à:
https: // lesencrypt.org / documents / le-sa-v1.2-novembre-15-2017.pdf
Veuillez saisir votre adresse e-mail pour signifier l'accord et être informé
en cas de problèmes. Vous pouvez le laisser vide, mais nous ne le recommandons pas.
Adresse e-mail: John @ mail.com

C'est ça! Votre site Web est maintenant opérationnel. Vous pouvez visiter le sous-domaine.exemple.com et il sera automatiquement redirigé vers HTTPS sans aucun numéro de port personnalisé ou d'autres nuances.

C'est aussi facile! Vous pouvez Ctrl + C pour arrêter le serveur, la prochaine fois qu'il réutilisera ce certificat.

Étape 4: Écrire votre fichier de caddy

La méthode ci-dessus est bonne pour les cas d'utilisation expérimentale où vous testez simplement l'eau. Mais si vous voulez un serveur Web en cours d'exécution comme processus d'arrière-plan, vous devez écrire un caddyfile et dire au serveur Web d'utiliser cette configuration pour exécuter votre serveur.

Ceci est l'exemple le plus simple pour le même site Web que nous avons hébergé ci-dessus:

sous-domaine.exemple.com
root / var / www / mysite

La directive racine indique au serveur Web où se trouve le site Web. Vous ne pouvez pas sortir de ce répertoire du côté client. C'est généralement une bonne idée de placer votre fichier de caddy n'importe où mais à l'intérieur de ce webroot. Vous pouvez le placer dans / etc / dossier ou votre répertoire domestique. Par exemple, si le fichier est créé sur / etc / caddyfile, vous pouvez dire au serveur d'utiliser cette configuration, en exécutant la commande:

$ caddy -conf / etc / caddyfile

Il existe plusieurs directives que vous pouvez utiliser pour affiner votre serveur. Vous pouvez activer la journalisation, la compression, le proxy inversé, etc. La documentation officielle est un bon endroit pour commencer à chercher des directives liées à votre cas d'utilisation. Voici un autre exemple où deux sites Web avec deux noms de domaine différents sont servis:

sous-domaine.exemple.com
root / var / www / mysite

sous-domaine2.exemple.com
root / var / www / mysite2
gzip
journal… / accès.enregistrer

La directive GZIP permet la compression, si le client le prend en charge. Cela améliore les performances car davantage de données peuvent être envoyées sur la bande passante et le même intervalle de temps. La journalisation aide à déboguer et à suivre l'activité du réseau.

Conclusion

La plus grande force du serveur Web Caddy est son fichier de configuration facile à écrire et à lire et sa flexibilité sur plusieurs plates-formes. Cependant, en raison de sa licence étrange, le serveur n'est pas strictement open source. Le code source est open source, et vous pouvez totalement le compiler vous-même et utiliser l'exécutable résultant, mais le binaire que vous recevez du site officiel n'est pas censé être utilisé à des fins commerciales sans licence appropriée.

Cela nous ramène à la question des complications où, au lieu de traiter avec des fichiers de configuration, nous devons également faire face à la compilation de code source en battant l'objectif d'un serveur Web facile à utiliser. Faites-nous savoir si vous avez des réflexions sur Caddy, et si l'un de vos sites Web fonctionne par-dessus.