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

By | 28/10/2024

Last Updated on 16/02/2025 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 – Nastavení Nginx SSL pfx[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;
...
}

Věřím, že článek Nastavení Nginx SSL pfx (Nginx setup SSL pfx files) pomohl.

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/

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *