Let's Encrypt: differenze tra le versioni
m (categorizzazione a pioggia, proprio.) |
m (Rakk ha spostato la pagina LetsEnrcrypt a Let's Encrypt senza lasciare redirect: typo) |
(Nessuna differenza)
|
Versione attuale delle 20:57, 25 ago 2017
Let'sencrypt è un progetto di Mozilla per fornire certificati HTTPS gratuitamente ed in modo automatico. Let's encrypt permette di richiedere un certificato, di autoconfigurare apache, di creare un webserver in python per far avvenire l'autenticazione del nome dominio ed altre cose simili tutto in maniera quasi completamente automatica.
Quasi completamente appunto.
Per esempio un caso più complesso è quello di un'applicazione, ad esempio etherpad, in cui il ruolo di apache è solo di proxy. In questo caso bisogna scegliere il metodo manuale e fare un po' di configurazioni nel virtualhost.
Scenario
Internert -> Apache di frontiera -> Apache dell'host che fa da proxy -> Server dell'applicazione
In questo caso, non volendo mettere offline i servizi forniti dall'host, bisogna scegliere il percorso manuale di let'sencrypt che consiste nel far mostrare ad un url deciso da letsencrypt un certo contenuto.
Assumendo che l'Apache di frontiera passi tutte le richieste all'apache dell'host bisogna configurare quest'ultimo per non proxare all'applicazione i contenuti che dobbiamo servire a let'sencrypt.
Come fare
Editiamo il file di configurazione dell sito pad.eigenlab.org: All'inizio pensavo che bastasse una direttiva alias per mappare un url ad un path sul filesystem ma ricevevo un permission denied, ho optato quindi per definire un blocco directory
<VirtualHost *:80> ServerName etherpad.eigenlab.org ServerAlias pad.eigenlab.org CustomLog /var/log/apache2/etherpad.eigenlab.org-access.log combined ErrorLog /var/log/apache2/etherpad.eigenlab.org-error.log # Sta roba server per letsencrypt DocumentRoot /var/www/localhost/htdocs
Definisco la document root per pescare i files da lì
<Proxy *> Order deny,allow Allow from all </Proxy>
Direttive normali per il proxy
# Staroba serve per letsencrypt ProxyPass /.well-known/acme-challenge !
Questo dice ad apache che l'url che inizia con .well-known/acme-challenge non deve essere proxato, questo path ce lo ha indicato lets'encrypt.
<Directory "/" > AllowOverride All Order allow,deny Allow from all </Directory>
Questo definisce un blocco directory che serve per mostrare il file impostando i permessi di accesso
ProxyRequests off ProxyPreserveHost on ProxyPass / http://etherpad.eigenlab.org:9002/ ProxyPassReverse / http://etherpad.eigenlab.org:9002/ </VirtualHost>
Questa è la solita configurazione di un proxy
In questo modo tutte le richieste del tipo pad.eigenlab.org/.well-known/acme-challenge verranno servite da apache stesso e non proxate. Nella document root creiamo quindi una cartella
.well-known/acme-challenge
e dentro creiamo il file che dovrà essere servito per dimostrare a letsencrypt che possediamo quel dominio.
Fatto!