Иди на текст

Uputstvo za automatizovanu zamenu TCS sertifikata

Softver koji će biti instaliran

Softver koji će biti instaliran:
  • certbot
  • python2-certbot-apache (Ovaj paket se integriše sa Certbot-om uz Python 2. Ukoliko koristite Python 3 koristi se paket python3-certbot-apache)
  • mod_ssl

Kreiranje ACME naloga na Sectigo portalu

Potrebno je ulogovati se na zvaničan Sectigo portal :

https://cert-manager.com/customer/AMRES

U sekciji Enrollment, izabrati polje ACME nakon čega će se prikazati svi dostupni Sectigo Public ACME nalozi:

Kreiranje ACME naloga, korak 1

Kreiranje ACME naloga, korak 1

Izabrati https://acme.sectigo.com/v2/GEANTOV Sectigo Public ACME nalog i nakon toga kliknuti na dugme Accounts:

Kreiranje ACME naloga, korak 2

Kreiranje ACME naloga, korak 2

Za kreiranje novog ACME naloga kliknuti na opciju + :

Kreiranje ACME naloga, korak 3

Kreiranje ACME naloga, korak 3

Uneti proizvoljan naziv ACME naloga:

Kreiranje ACME naloga, korak 4

Kreiranje ACME naloga, korak 4

Zatim je potrebno dodati odgovarajući domen sertifikata, pretraživanjem i odabirom sertifikata iz liste:

Kreiranje ACME naloga, korak 5

Kreiranje ACME naloga, korak 5

Sačuvajte nalog klikom na SAVE.

Nakon toga dobićete prikaz dva bitna parametra: Key ID i HMAC Key. Oni će biti potrebni u postupku registracije Certbot agenta. Ukoliko ih u tom momentu ne sačuvate, možete ih pronaći kasnije klikom na opciju Details u okviru kreiranog ACME naloga:

Kreiranje ACME naloga, korak 6

Kreiranje ACME naloga, korak 6

Napomena: Može se kreirati nalog za svaki server.

CentOS 7 End of Life - instalacija paketa iz arhiviranog repozitorijuma

Pošto su zvanični repozitorijumi za instaliranje softverskih paketa na CentOS 7 ugašeni, moguće je instalirati softverske pakete korišćenjem arhiviranog repozitorijuma. Da bi to bilo moguće, potrebno je ažurirati 'yum' konfiguraciju tako da koristi arhivirani repozitorijum za CentOS 7.

Otvoriti konfiguracionu datoteku repozitorijuma za uređivanje:

nano /etc/yum.repos.d/CentOS-Base.repo

U svakoj sekciji [base], [updates], [extras], i [centosplus], promeniti URL-ove u arhivirani repozitorijum. Zakomentarisati linije koje počinju sa mirrorlist= sa sledećim:

Za [base] sekciju, koristiti: baseurl=http://vault.centos.org/7.9.2009/os/$basearch/

Za [updates] sekciju, koristiti: baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/

Za [extras] sekciju, koristiti: baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/

Očistiti yum keš:

yum clean all yum makecache

Instalacija paketa je sada moguća iz arhiviranog repozitorijuma.

Instalacija potrebnih softverskih paketa

Napomena: Ovde je prikazan slučaj kada je na serveru dostupan Python 2, pa se samim tim koristi paket python2-certbot-apache. Međutim, ako koristite Python 3, potrebno je da instalirate paket python3-certbot-apache

Instalirati potrebne pakete:

yum install epel-release
yum install certbot python2-certbot-apache mod_ssl -y

Registracija Certbot agenta

Prilikom korišćenja naredne komande potrebno je navesti označene podatke.

  • <EMAIL> podatak po izboru
  • <ACME URL> podatak koji ste dobili prilikom kreiranja naloga na portalu
  • <AKEY ID> podatak koji ste dobili prilikom kreiranja naloga na portalu
  • <HMAC KEY> podatak koji ste dobili prilikom kreiranja naloga na portalu

Komanda za registraciju certbot agenta u uopštenom obliku:

certbot register --email <EMAIL> --server <ACME URL> --eab-kid <KEY ID> --eab-hmac-key <HMAC KEY>
Primer korišćenja komande:

certbot register --email xxxxx@xxx.ac.rs --server https://acme.sectigo.com/v2/GEANTOV --eab-kid 5vxxxxxxxx_xxg --eab-hmac-key P-xxxxx0_xxxxxxi_xx_x_xmxxxxxxxxx343utxxxE-xx_6xx-Loxxxxxxxxdx

Izveštaj uspešne registracije certbot agenta:

Napomena: Na prvi zahtev potrebno je odgovoriti potvrdno sa Y, a na drugi odrično sa N.

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://secure.trust-provider.com/repository/docs/Legacy/20230516_Certificate_Subscriber_Agreement_v_2_6_click.pdf.
You must agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Account registered.

Kreiranje novih sertifikata putem certbot agenta

U ovom postupku potrebno je kreirati nov sertifikat putem certbot agenta, a svaki sledeći sertifikat će biti obnovljen automatski.

Prilikom korišćenja naredne komande potrebno je navesti označene podatke.

  • <EMAIL> podatak
  • <ACME URL> podatak koji ste dobili prilikom kreiranja naloga na portalu
  • <DOMEN_SERTIFIKATA> podatak o domenu sertifikata
  • <NAZIV> direktorijuma u kom će biti smešteni sertifikati

Komanda za registraciju certbot agenta u uopštenom obliku:

certbot certonly --standalone --email <EMAIL> --server <ACME URL> --domain <DOMEN_SERTIFIKATA> --key-type rsa --rsa-key-size 3072 --cert-name <NAZIV>

Primer korišćenja komande:

certbot certonly --standalone --email xxxxxx@xxxxx.ac.rs --server https://acme.sectigo.com/v2/GEANTOV --domain test_domen.institucija.ac.rs --key-type rsa --rsa-key-size 3072 --cert-name test_domen.institucija.ac.rs

Izveštaj uspešnog izdavanja sertifikata:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Requesting a certificate for test_domen.institucija.ac.rs

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/test_domen.institucija.ac.rs/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/test_domen.institucija.ac.rs/privkey.pem
   Your certificate will expire on 2025-01-31. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Sertifikati su dostupni na putanji: /etc/letsencrypt/live/test_domen.institucija.ac.rs/

Napomena: Direktorijum u kom su sertifikati će imati naziv domena sertifikata.

lrwxrwxrwx 1 root root  48 Feb  5 03:02 cert.pem -> ../../archive/test_domen.institucija.ac.rs/cert.pem
lrwxrwxrwx 1 root root  49 Feb  5 03:02 chain.pem -> ../../archive/test_domen.institucija.ac.rs/chain.pem
lrwxrwxrwx 1 root root  53 Feb  5 03:02 fullchain.pem -> ../../archive/test_domen.institucija.ac.rs/fullchain.pem
lrwxrwxrwx 1 root root  51 Feb  5 03:02 privkey.pem -> ../../archive/test_domen.institucija.ac.rs/privkey.pem
-rw-r--r-- 1 root root 692 Feb  1 14:24 README

Proveriti validnost sertifikata:

openssl x509 -in /etc/letsencrypt/live/test_domen.institucija.ac.rs/cert.pem -text -noout

U istu svrhu može se iskoristiti i komanda: certbot certificates

certbot certificates

Izveštaj:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: test_domen.institucija.ac.rs
    Serial Number: 6axxxxxxxxxxxxxxxxxxxxxxxxx
    Key Type: RSA
    Domains: test_domen.institucija.ac.rs
    Expiry Date: 2025-02-04 23:59:59+00:00 (VALID: 365 days)
    Certificate Path: /etc/letsencrypt/live/test_domen.institucija.ac.rs/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/test_domen.institucija.ac.rs/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Promena konfiguracije Apache servera

Simboličkim linkom prebaciti sertifikate na odgovarajuću putanju sa koje Apache WEB server može da ih usvoji (/etc/ssl/certs/ i /etc/ssl/private/):

ln -s /etc/letsencrypt/live/test_domen.institucija.ac.rs/cert.pem /etc/pki/tls/certs/cert.pem
ln -s /etc/letsencrypt/live/test_domen.institucija.ac.rs/privkey.pem /etc/pki/tls/private/privkey.pem
ln -s /etc/letsencrypt/live/test_domen.institucija.ac.rs/chain.pem /etc/pki/tls/certs/chain.pem

Izmeniti konfiguraciju Apache servera, tako da budu uneti novi sertifikati na gore navedenim putanjama.

Zatim treba restartovati Apache proces:

systemctl restart httpd

Podešavanje termina sledeće obnove sertifikata

Konfiguracioni fajl koji sadrži opciju specifikacije termina je /etc/letsencrypt/renewal/test_domen.institucija.ac.rs.conf, a čiji naziv zavisi od domena sertifikata, u ovom slučaju to je test_domen.institucija.ac.rs:

Otkomentarisati prvu liniju i zatim specificirati broj dana pred istek sertifikata kada će sertifikat biti obnovljen (naša preporuka bi bila 14 dana):

# renew_before_expiry = 30 days
renew_before_expiry = 14 days

Crontab podešavanje

Potrebno je da se podesi da komanda za obnovu serifikata pokreće svaki dan (u 03 ujutru) uz proveru validnosti serifikata. Napomena: Navedena komanda neće obnavljati sertifikat svaki dan već će ga obnoviti tek kada dođe do navedenog broja dana pred njegov istek.

crontab -e

Uneti navedenu liniju:

0 3 * * * /usr/bin/certbot renew --renew-hook "/usr/bin/systemctl restart httpd"
Sačuvati izmene i izaći iz crontab alata.

Ovim je proces podešavanja automatske obnove sertifikata završen.