Nastavení Nginx SSL .pfx (Nginx setup SSL pfx files)

By | 16/11/2023

Last Updated on 10/12/2023 by administrator

Nastavení Nginx SSL .pfx (Nginx setup SSL pfx files)

Nastavení Nginx SSL .pfx (Nginx setup SSL pfx files)

Motivace:

Návod popisuje, jak zprovoznit jednoduše zprovoznit SSL pro webový server pomocí souboru .pfx.

Soubory PKCS#12 jsou často označovány jako “PFX” soubory (Personal Information Exchange). Tyto soubory mohou obsahovat několik kryptografických prvků, včetně:

  1. Privátní klíče: Používají se k podepisování nebo dešifrování dat. Jsou chráněny heslem nebo jiným mechanismem zabezpečení.
  2. Certifikáty: Obsahují informace o vlastnícím subjektu a jeho veřejném klíči. Certifikáty jsou často vydávány certifikačními autoritami a slouží k ověření identity.
  3. Řetězec certifikátů: PKCS#12 může obsahovat celý řetězec certifikátů, od konkrétního certifikátu až po certifikační autoritu.

OS:

Implementace byla prováděna na Ubuntu 22.04 LTS.

Prerekvizita:

Je předpokládáno, že webové stránky již na Nginx běží.

Implementace[1]:

Extrahování souborů ze souboru PKCS#12:

Přejít do /etc/ssl složky:

cd etc/ssl

Extrahovat klientský certifikát ze souboru PKCS#12 (.pfx) a uložit jej ve formátu PEM (.crt):

openssl pkcs12 -in ./VAS_PFX_SOUBOR.pfx -clcerts -nokeys -out domain.crt

Legenda:

  • pkcs12 – je standard definující formát datového souboru .pfx
  • in ./VAS_PFX_SOUBOR.pfx – je vstupní PKCS#12 soubor (s příponou .pfx)
  • -clcerts– určuje, že bude zahrnutý na výstupu pouze klientský certifikát
  • -nokeys – určuje, že není potřeba do výstupu zahrnout privátní klíče
  • -out domain.crt – je výstupní soubor ve formátu PEM (s příponou .crt)

Soubor domain.crt obsahuje, veřejný klíč, informace o subjektu (vlastníkovi certifikátu), informace o vydavateli certifikátu (certifikační autoritu), období platnosti certifikátu, digitální podpis a algoritmus pro generování veřejného klíče.

Extrahovat privátní klíč ze souboru PKCS#12 (.pfx) a uložit jej s příponou (.rsa):

openssl pkcs12 -in ./YOUR-PFX-FILE.pfx -nocerts -nodes -out domain.rsa

Legenda:

  • -nocerts – s tímto parametrem se bude nebudou se zahrnovat certifikáty (x509) do výstupního souboru (pouze privátní klíč)
  • -nodes – určuje, že privátní klíče nebudou šifrovány
  • -out domain.crt – je výstupní soubor s příponou .rsa

Soubor domain.rsa obsahuje, privátní klíč včetně modulu (modulus).

Konfigurace NGINX:

Zde je příklad pro konfiguraci v defaultním souboru Nginx. Bude předpokládáno, že doménové jméno pro webový server je domain.com.

Otevřít soubor default ve složce/etc/nginx/sites-enabled/:

 vi /etc/nginx/sites-enabled/default

vložit následující řádky (toto je nejjednodušší konfigurace NGINX):

server {
 listen 443 ssl;
 server_name domain.com domain.com;
 ssl_certificate /etc/ssl/domain.crt;
 ssl_certificate_key /etc/ssl/domain.rsa;

 root /var/www/html;
 index index.html;
 include /etc/nginx/mime.types;
}

Pro kontrolování Nginx syntaxe použít:

sudo nginx -t

Provést restart služby Nginx:

sudo systemctl reload nginx

Zkontrolovaní expirace certifikátu:

openssl x509 -enddate -noout -in /etc/ssl/domain.crt

TIP – Jak přesměrovat HTTP na HTTPS [2]:

Přesměrování je možné provést přes příkaz níže v souboru /etc/nginx/sites-enabled/default:

return 301 https://domain.com$request_uri;

Otevřít soubor default ve složce /etc/nginx/sites-enabled/:

vi /etc/nginx/sites-enabled/default

a takto výsledná konfigurace v souboru /etc/nginx/sites-enabled/ vypadá takto:

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        return 301 https://domain.com$request_uri;
...
}

Zdroj:

[1] https://blog.knoldus.com/easiest-way-to-setup-ssl-on-nginx-using-pfx-files/

[2] https://blog.knoldus.com/nginx-redirecting-traffic-between-www-and-non-www-domain/

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *