Het Aanvragen van een LetsEncrypt Certificaat Met Acme

0
257

LetsEncrypt veranderd het SSL-certificaat wereld als haar aanbieden van een gratis, korte duur, SSL-certificaten toegestaan een enorme hoeveelheid van individuen en bedrijven om de beveiliging van hun webapplicaties zonder kosten. Met deze dienst, de nodige infrastructuur zou moeten bestaan, en tot dat einde, een overvloed aan toepassingen ontstaan die passen bij de SSL-afgifte behoeften.

Een van de meest gebruikte hulpprogramma ‘ s is dat van CertBot, dat kan goed werken, maar een ander open-source applicatie die beschikbaar is acme.sh. Dit is een geheel shell-gebaseerd ACME (het protocol dat wordt gebruikt door LetsEncrypt voor de uitgifte van SSL-certificaten van) opdrachtgever. Met veel geavanceerde functies ingebouwd, maar deze opdrachtgever zorgt voor een complexe configuraties.

Installeren Acme.sh

De makkelijkste manier om het te installeren [acme.sh](<http://acme.sh>) is het volgende, downloads en voert het script van hier, https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh.

krul <https://get.acme.sh> | sh

De bron voor die site is hier te vinden, als je zou willen om te controleren wat de eigenlijke script is te doen

De installatie zal het downloaden en de bestanden verplaatsen naar ~/.acme.sh en het installeren van een alias in je ~/.bashrc bestand. Bovendien, een cron-job worden geïnstalleerd (indien beschikbaar).

Eerste Stappen

Veel van hoe je gebruik [acme.sh](<http://acme.sh>) hangt af van de methode en de toepassing die u aan het certificaat wordt aangevraagd voor. Acme.sh biedt veel verschillende methoden om daadwerkelijk een certificaat aanvragen zoals:

  • Webroot modus
  • De modus stand-alone
  • Standalone tls-alpn modus
  • Apache-modus
  • Nginx modus
  • DNS-modus
  • DNS-alias-modus
  • Staatloze modus

In dit artikel ga ik het aantonen van twee verschillende manieren om een certificaat aanvragen. Ik ben met inbegrip van de web server configuraties voor zowel NGINX en Apache, die gebruik maakt van de Webroot-methode. De DNS-modus methode maakt gebruik van een configuratie bestand CNAME-records te maken die worden gebruikt om het domein te verifiëren, in plaats van het creëren van een bestand in het bestandssysteem.

Web Server Configuratie

NGINX LetsEncrypt Configuratie

NGINX maakt het gemakkelijk om een gedeelde configuratie te gebruiken bij het gebruik van de webroot methode van het aanvragen van een certificaat.

letsencrypt.conf

Het wordt aanbevolen om een standalone configuratie die kunnen worden opgenomen in de vhost configuraties, zoals: include /etc/nginx/letsencrypt.conf

# Regel voor legitieme ACME Uitdaging verzoeken (zoals /.bekende/acme-challenge/xxxxxxxxx)
# We gebruiken ^~ hier, zodat we controleren geen andere regexes (voor snelheid-up). We daadwerkelijk MOETEN annuleren
# andere reguliere controles, want in onze andere configuratie bestanden hebben regex regel die toegang weigert naar bestanden met gestippelde namen.
locatie ^~ /.bekende/acme-challenge/ {
# Stel de juiste content-type. Volgens deze:
# <https://community.letsencrypt.org/t/using-the-webroot-domain-verification-method/1445/29>
# Huidige specificatie vereist “text/plain” of geen inhoud header op alle.
# Het lijkt erop dat “text/plain” is een veilige optie.
default_type “text/plain”;
}

# Direct access geeft een 404
locatie = /.bekende/acme-challenge/ {
terug 404;
}

Apache

Net als NGINX, Apache kunt u een aparte configuratie bestand. Een voorbeeld van deze configuratie is hieronder weergegeven.

/etc/apache2/conf-beschikbaar/letsencrypt.conf

In dit geval, de Apache configuratie is specifiek voor de virtuele host vanwege de noodzaak om de schijf. Het volgende is een gebruikelijke locatie, maar het kan verschillen afhankelijk van uw specifieke configuratie.

Alias /.bekende/acme-challenge/ “/var/www/html/.bekende/acme-challenge/”
<Directory “/var/www/html/”>
AllowOverride None
Opties MultiViews Indexen SymLinksIfOwnerMatch IncludesNoExec
Vereisen methode GET POST OPTIES
</Map>

De DNS-Configuratie

In dit artikel, ik ben het aantonen van de DNS-modus met behulp van Cloudflare, als het biedt een zeer snelle DNS-wijzigingen en uitzonderlijk goed werkt met deze methode.

Acme.sh maakt gebruik van twee milieu-variabelen voor de dns_cf methode: CF_Key en CF_Email. Om dit op te nemen in uw omgeving bij het opstarten, kunt u deze config binnen uw .bashrc bestand.

Het is misschien niet direct duidelijk, maar er is een voorafgaande ruimte voor elke export-commando, die over het algemeen zorgt ervoor dat ze niet worden ingelezen in de geschiedenis, just in case.

export CF_Key=”#########…”
export CF_Email=”cfaccount@email.com”

Afgifte Certificaat via Webroot Methode

Bij de afgifte van de volgende opdracht twee domeinen zijn gedefinieerd in een enkel certificaat. Dit is om ervoor te zorgen dat wanneer een hostnaam wordt gevraagd (en vaak doorverwezen naar de canonieke één), het verzoek toch worden beschermd via een beveiligde verbinding.

acme.sh –probleem -d example.com -d www.example.com -w /var/www/html

Uitgegeven certificaten zijn in /.acme.sh/acme.sh/{domein}

Afgifte Certificaat via DNS-Methode

Wanneer u de DNS-afgifte methode, een tijdelijke txt-record wordt aangemaakt via de Cloudflare API, en LetsEncrypt controleert het domein met behulp van die tijdelijke record. Dit is een schonere methode, omdat er geen webroot configuratie is niet nodig.

# Meerdere Domeinen
acme.sh –probleem –dns-dns_cf -d example.com -d www.example.com

Uitgegeven certificaten zijn in /.acme.sh/acme.sh/{domein}

Het Vernieuwen Van Het Certificaat

Standaard Acme.sh een cronjob zoals de volgende vermelding:

48 0 * * * “/home/user/.acme.sh/acme.sh” –cron –home “/home/user/.acme.sh” > /dev/null

Om te forceren dat een verlenging, kunt u de volgende opdracht, die zal gebruik maken van dezelfde uitgevende methode die oorspronkelijk gebruikt:

acme.sh –vernieuwen -d example.com -d www.example.com

Certificaten Verwijderen

Als u niet langer wilt vernieuwen van een certificaat, het is heel gemakkelijk te verwijderen. Dit is niet het certificaat verwijderen van de schijf, dat wel. Om dat te doen, moet u navigeren naar ~/.acme.sh/ en verwijder de map met de certificaten.

acme.sh –remove-d example.com -d www.example.com

Dit biedt de mogelijkheid voor een opruimen van de certificaten die zijn ingesteld voor vernieuwing, wat u kunt controleren door een opsomming van de certificaten zoals:

acme.sh –lijst

Conclusie

LetsEncrypt biedt een uitstekende en eenvoudig te gebruiken dienst is voor de levering van SSL-certificaten voor gebruik in websites. Het creëren van een veilige website is gemakkelijker dan ooit, en het gebruik van de acme.sh opdrachtgever betekent dat je volledige controle hebt over hoe dit gebeurt op uw web server.

Met een aantal verschillende methoden om een certificaat te verkrijgen, zelfs bij een zeer veilige methoden, zoals een gedelegeerde domeinnaam, hiermee kan een goed ophalen van de benodigde certificaten.