Иди на текст

Uputstvo za automatizovanu zamenu TCS sertifikata

Softver koji će biti instaliran

Softver koji će biti instaliran:
  • certbot
  • python3-certbot-apache

Kreirati nalog 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.

Instalacija potrebnih softverskih paketa

Instalirati potrebne pakete:

apt update
apt install certbot -y
apt install python3-certbot-apache -y

Registracija certbot agenta

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

  • <EMAIL> podatak
  • <ACME URL> podatak koji ste dobili prilikom kreiranja naloga na portalu
  • <KEY 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_axg --eab-hmac-key P-xxxxx0_xxxxxxi_xx_x_vmxxxxxxxxxA3utxxxE-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 podatak po izboru
  • <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/ssl/certs/cert.pem
ln -s /etc/letsencrypt/live/test_domen.institucija.ac.rs/privkey.pem /etc/ssl/private/privkey.pem
ln -s /etc/letsencrypt/live/test_domen.institucija.ac.rs/chain.pem /etc/ssl/certs/chain.pem

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

Zatim treba restartovati Apache proces:

systemctl restart apache2

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 apache2"

Sačuvati izmene i izaći iz crontab alata.

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