Kuidas kasutada HTTPS-i farmide SSL-sertifikaatide krüpteerimist

POSTITATUD 3. juulil 2019

Ülevaade

Let's Encrypt on avatud ja automatiseeritud sertifikaadi asutus, mis kasutab ACME (Automaatne sertifikaadi haldamise keskkond) protokolli tasuta TLS / SSL-sertifikaatide edastamiseks ühilduvale kliendile. Neid sertifikaate saab kasutada veebiserverite ja kasutajate vahelise side krüpteerimiseks.

Selles õpetuses arutatakse lühidalt sertifikaadiasutusi ja kuidas töötab Zevenet'i integreerimine rakendusega Let's Encrypt, seejärel vaadake, kuidas Zevenet certbot (ACME klient), et luua side saidiga Krüpteerime infrastruktuuri.

Zevenet Load Balancer 6.0.3 või kõrgem versioon sisaldab väikest certbot ümbrist, mida nimetatakse letencryptz Certbot webrooti funktsionaalsuse kasutamiseks selgitatakse järgmistes ridades, kuidas see ümbris töötab, palun võtke seda arvesse, et muuta see tootmistingimustes töötavaks.

Kuidas krüpteerime valideerimise?

Lühike webrooti funktsionaalsuse kirjeldus töötab veebipõhise plugina, luues iga teie taotletud domeeni jaoks ajutise faili Zeveneti failirajal /usr/local/zevenet/app/letsencryptz/webroot/.well-known/acme-challenge/. Seejärel krüptib valideerimisserver HTTP-päringuid selle kinnitamiseks, et iga taotletud domeeni DNS lahendab server, mis töötab letsencryptz-ümbrist, ja ajutine fail valideerimise jaoks on juurdepääsetav. Järgmine diagramm kirjeldab tegelikku näidet:

Krüpteerime Zevenet

Eelmises skeemil on Zeveneti koormuse tasakaalustaja avaliku IP-aadressi taga oleva ruuteri / tulemüüri taga 185.79.20.147 (näiteks) HTTP ja HTTPS liiklus natted sisemise koormuse tasakaalustajaga VIP 192.168.101.31iga (näiteks), kus koormuse tasakaalustaja on konfigureeritud erinevate 2i taludega:

HTTPSi talu nimi Veebihost kaudu 192.168.101.31:443. See talu vastutab veebimajutuse pakkumise eest, samuti avaldatakse internetis erinevad veebiserverid. Näiteks, test1.zevenet.es, test2.zevenet.es, test3.zevenet.es testivad sellel virtuaalsel teenusel avaldatud veebilehti muu hulgas.
HTTP talu nimi WebhostingRedirect kaudu 192.168.101.31:80. Seda talu kasutatakse ainult ümbersuunamise eesmärgil, see sunnib kogu liikluse HTTP-lt HTTPS-ile.

Eelmine skeem kirjeldab SSL-i krüpteerime domeeni sertifikaadi taotlust test1.zevenet.es järgmiselt:

1. Sertifikaaditaotlus saadetakse koormuse tasakaalustajalt ise infrastruktuuri Let's Encrypt.
2. Krüpteerime uue SSL-i sertifikaaditaotluse test1.zevenet.es
3. Krüpteerime DNS-i lahenduse käitamise taotletud hostile: test1.zevenet.es kontrollides, kas tulemus on avalik IP, sama algus IP, mis taotluse algatas.
4. Siinkohal krüpteerime teadaanded aadressile letencryptz skript (webroot cerbot), mis vajab faili a loomiseks HASH avalikul teel http://test1.zevenet.es/.well-know/acme-challenge/ (80 TCP port), kohalik kataloog /usr/local/zevenet/app/letsencryptz/webroot/.well-known/acme-challenge/. Siis letencryptz konfigureerib ajateenuse, et muuta see fail Interneti kaudu kättesaadavaks (talu WebhostingRedirect seda kavatsetakse muuta. Kui talu ei ole juba konfigureeritud letencryptz see VIP ja Port).
6. Niipea kui letencryptz kinnitab ajutise teenuse loomist, lubab krüpteerida servereid, et kontrollida ajalise valideerimisfaili loomist ja HASH sisu on õige.
7. Lõpuks laseme krüpteerida serverid esimesele taotlusele juba loodud sertifikaadiga Üldnimetus (CN) test1.zevenet.es.
8. Zevenet salvestab juba loodud sertifikaadi kohalikku teed / usr / local / zevenet / config / ning see on talus konfigureeritav Veebihost.

Selles etapis kasutatakse HTTPS-i virtuaalse teenuse jaoks uut sertifikaati Let's Encrypt.

Krüpteerime automaatika käsud

Nagu kirjeldatud, on letencryptz skript automatiseerib vajalikud toimingud SSL-sertifikaatide haldamiseks, näiteks luua, uuendada, hävitada või loetleda. Leidke allolevad käsud.

root@zva6k:~# letsencryptz

letsencryptz description:

letsencryptz is a let's encrypt (certbot) wrapper with minimal parameters ready to manage Let's Encrypt certificates for ZEVENET https profiles. Take into account that this wrapper uses certbot webroot feature so the public Let's encrypt architecture requires to connect with a local Virtual IP and port (TCP 80 by default) in order to do a request validation for the requested domain, so as soon as the "obtain" param is used, this script will configure an HTTP farm which will be accessed by Let's encrypt for verification purpose, this configuration is done automatically by this script itself, only ensure that the used Virtual IP and HTTP port 80 is not used by any another load balanced farm, and also ensure that the DNS resolution for the requested domain is reachable from let's encrypt system.


usage:

/usr/local/zevenet/bin/letsencryptz <action> <commands>

action: --obtain | --destroy | --renew | --list | --listconf | --help

	--obtain: Request new Certificates using webroot cert-bot module.

		commands: --vip <Virtual IP> --farm <Farm Name> --domain <domain1> --domain <domain2> --domain <domainN> --test

        		--vip: The Virtual IP already configured were to publish a temporal web server, this will be connected by let's encrypt public servers to verify the certificate request. The Virtual IP has to be free on the 80 port in order to be bound by a local process, if it isn't free then use --farm instead.
        		--farm: The farm name which configures a temporal Service called "letsencryptz", if no farm is used a temporal farm called "letsencryptZevenet" will be configured in the selected Virtual IP.
        		--domain: The domain which requests the Certificate for, i.e. www.mycompany.com.
			--test: Optional parameter, if used the certificate is requested for test purpose.

	--destroy: Revoke and delete the indicated Certificate Name, the action is rejected if the given certificate is in use by a farm.
		
		commands: --certname <Certificate Name>
	       	
			--certname: Certificate Name, this value can be obtained from the action --list.

	--renew: Renew the certificates near to expiry, no commands needed
		
		commands: --test --forcerestart --vip <Virtual IP> --farm <Farm Name>
	       		--test:	Optional parameter, if used a dry-run is executed, the renew of the certificates is simulated. 
			--forcerestart: Optional parameter, if used the farms that are using the renewed certificates will be restarted in order to apply the changes.
                        --vip: The Virtual IP already configured where to publish a temporal web server, this will be connected by let's encrypt public servers to verify the certificate renew. The Virtual IP has to be free on the 80 port in order to be bound by a local process, if it isn't free then use --farm instead.
                        --farm: The farm name which configures a temporal Service called "letsencryptz", if no farm is used a temporal farm called "letsencryptZevenet" will be configured in the selected Virtual IP.

	--list: List all the local certificates managed by let's encrypt and the status, no commands needed.

	--listconf: List the Zevenet let's encrypt configuration module (check global.conf file), no commands needed. 

	--help: Obtain this help.


Laskekrüptise esmakordne käivitamine võtab mõnda aega, kuna süsteem installib lahendamata sõltuvused automaatselt, enne selle kasutamist alustatakse ka konfiguratsiooni ülevaatamist, Krüpteerime krüpteerib e-posti konto või võtke ühendust sertifikaatidega seotud eesmärkidega, seda e-posti kontot kasutatakse kõigi toimingute puhul, mis on tehtud süsteemi krüptimise vastu, selle e-posti saab konfigureerida peamises konfiguratsioonifailis /usr/local/zevenet/config/global.conf, direktiiv $ le_email.

Mõned kasutusnäited on toodud allpool.

Zevenet Krüpteerime sertifikaatide loomise

See käsk nõuab domeenilt uut sertifikaati test2.zevenet.es. Võtke arvesse, et antud VIP on sisemine, mille liiklus tuleks nattida avalikult IP-lt sisemisele. Kui Let Encrypt ei pääse selle teenuseni, lükatakse taotlus tagasi.

root@zva6k:~# letsencryptz --obtain --vip 192.168.101.31 --domain test2.zevenet.es
WARNING: No farm name specified, a temporal farm with name letsencryptZevenet will be created in VIP 192.168.101.31 port 80.
Configuring farm for let's encrypt Certificate Name verification
Obtaining Certificate for domains test2.zevenet.es...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Non-standard path(s), might not work with crontab installed by your operating system package manager
Certificate Request for the domain(s) test2.zevenet.es OK
Created Certificate name test2.zevenet.es in PEM format ready for HTTPS profile
Destroying webroot configuration for the farm letsencryptZevenet
Deleting already configuration for letsencryptZevenet, service letsencryptz
Restarting farms using renewed certificates: 

Zevenet Krüpteerime sertifikaatide loendi

Selle käsu käivitamine näitab praeguseid sertifikaate, mida haldab Zevenet Let's Encrypt süsteem.

root@zva6k:~# letsencryptz --list
Listing all available certificates for the current configuration in config dir /usr/local/zevenet/config/letsencrypt/
Saving debug log to /var/log/letsencrypt/letsencrypt.log
	Certificate Name: test1.zevenet.es
	Domain(s): test1.zevenet.es
	Expiry Date: 2019-09-19 10:48:02+00:00 (VALID: 77 days)
	Pem Certificate file: /usr/local/zevenet/config/test1_zevenet_es.pem

	Certificate Name: test3.zevenet.es
	Domain(s): test3.zevenet.es
	Expiry Date: 2019-09-26 06:32:52+00:00 (VALID: 83 days)
	Pem Certificate file: /usr/local/zevenet/config/test3_zevenet_es.pem


Võtke arvesse Välja Sertifikaadi nimi, tunneb selle välja ära letsencryptz ümbris kui –Tserdi nimi.

Zevenet Krüpteerime sertifikaadi uuendamise

Eelmine käsk kontrollib, kas mõni juba loodud sertifikaat vajab uuendamist, sel juhul toimub uuendamine automaatselt. Võtke arvesse, et kui uuendatud sertifikaati kasutatakse, tuleb muudatuse rakendamiseks talu taaskäivitada, palun kasutage suvandit –Forcerestart Kui soovite letencryptz taaskäivitab kõik muudatuste rakendamiseks vajalikud talud.

root@zva6k:~# letsencryptz --renew --vip 192.168.101.31
Renewing all the required certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Cert not yet due for renewal
Cert not yet due for renewal

Krüpteerime Zevenet'i sertifikaadi kustutamise

See käsk tühistab ja kustutab antud sertifikaadi. Kui süsteem tuvastab, et valitud sertifikaati kasutab praegu igas HTTPS-i farm, lükatakse toiming tagasi. Ülaltoodud näites lükatakse kustutamistoiming tagasi, kuna sertifikaat on farmi kasutuses testhttps.

root@zva6k:~# letsencryptz --destroy --certname test3.zevenet.es
Revoking and deleting certificate(s) test3.zevenet.es for the current configuration...
This file can't be deleted because is used by the farm(s):  testhttps

Niipea kui sertifikaat talust määramata on, tehakse järgmised toimingud:

root@zva6k:~# letsencryptz --destroy --certname test3.zevenet.es
Revoking and deleting certificate(s) test3.zevenet.es for the current configuration...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Deleted certificate(s) test3.zevenet.es in path /usr/local/zevenet/config/test3_zevenet_es.pem

Migreerime krüpteerime sertifikaadid Zevenetisse

Zevenet Load balancer salvestab kõik konfiguratsioonifailid certbot kohalikul teel / usr / local / zevenet / config / letsencrypt /. Olemasolevate sertboti konfiguratsioonifailide teisaldamiseks (vaikimisi kataloogis / etc / letsencrypt) teise serveri Zevenetisse, peate oma serveris tegema ainult selle olemasoleva konfiguratsioonikataloogi tarball (tar.gz-fail) ja pakkima lahti Zevenet Let's Encrypt seadistustee sisu. Lõpuks kaaluge muutuja muutmist $ le_email toimikus global.conf samale e-posti aadressile, mida on kasutatud eelmistes taotlustes.

Krüpteerime sertifikaatide klastrite toe

Zevenet Let's Encrypt pluginat toetab täielikult Zevenet Cluster teenus. Kõik toimingud Krüpteerime salvestatakse konfiguratsioonifaili, mida kopeerib Zevenet Cluster Service, nii et kõik MASTER sõlm kopeeritakse Slaav sõlme automaatselt, kuid kõik toimingud, mis teostatakse Slaav Desünkroniseerimise vältimiseks visatakse krüptimisega seotud sõlm kõrvale.

Krüpteerime sertifikaatide automaatse uuendamise

Zevenet Let's Encrypt pistikprogrammi saab konfigureerida, et kontrollida iga päev, kas mõni sertifikaat vajab uuendamist, juhul kui süsteem uuendab automaatselt antud sertifikaati ja seda kasutab mõni farm, siis taaskäivitatakse farm automaatselt, et rakendada sertifikaadi muutmine.

Automaatse pikendamise konfigureerimiseks toimige järgmiselt:

Looge järgmine cron-fail /etc/cron.d/letsencryptz koos järgmise sisuga:

root@zva6k:~# cat /etc/cron.d/letsencryptz
00 00 * * *	root	/usr/local/zevenet/bin/letsencryptz --renew --forcerestart --vip 192.168.101.31

Selle konfiguratsiooni korral teostatakse uuenduskontroll iga päev kell 00:00 (keskööl). Ja VIP 192.168.101.31 kasutatakse pordis 80 kontrollimise eesmärgil Let's Encrypt Systemist.

viited

Mõned selles artiklis kasutatud viited on järgmised:

Webroot ja Certbot
Kuidas töötab krüptimine?

Jaga:

Dokumentatsioon GNU Vaba Dokumentatsiooni Litsentsi tingimustel.

Kas see artikkel oli kasulik?

seotud artiklid