Como instalar e configurar SSL de domínio customizado com Nginx no Ubuntu 20.04 LTS

Para explicar como instalar e configurar SSL de domínio, vou utilizar o endereço-exemplo: empresa.local

$ sudo mkdir /etc/nginx/ssl-certs

$ cd /etc/nginx/ssl-certs

$ sudo openssl genrsa -des3 -out empresa.key 2048

$ sudo openssl req -x509 -new -nodes -key empresa.key -sha256 -days 825 -out empresa.pem


Crie o arquivo config.cnf e preencha-o com os dados abaixo:

$ sudo nano empresa.ext

[req]
default_bits = 4096
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
countryName = 
countryName_default = CA
stateOrProvinceName = 
stateOrProvinceName_default = Alberta
localityName = 
localityName_default = Calgary
organizationName = 
organizationName_default = My Company
commonName = 
commonName_default = localhost
commonName_max = 64

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = empresa.local
DNS.2 = empresa-2.local

$ sudo openssl genrsa -out empresa.local.key 2048

$ sudo openssl req -new -out empresa.local.csr -key empresa.local.key -config config.cnf

$ sudo openssl x509 -req -days 3650 -in empresa.local.csr -signkey empresa.local.key -out empresa.local.crt -extensions v3_req -extfile config.cnf


Adicione informações de SSL nas configurações do seu host Nginx:

$ sudo nano /etc/nginx/sites-available/empresa.local

# PHP 7.4
server {
    listen 80;
    listen 443 ssl;
    root /var/www/html;
    index index.php;
    server_name empresa.local;

    ssl_certificate /etc/nginx/ssl-certs/empresa.local.crt;
    ssl_trusted_certificate /etc/nginx/ssl-certs/empresa.local.crt;
    ssl_certificate_key /etc/nginx/ssl-certs/empresa.local.key;

    client_max_body_size 2M;

    location ~* \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_read_timeout 600;
    }

}

$ sudo ln -s /etc/nginx/sites-enabled/empresa.local /etc/nginx/sites-available/empresa.local


Reinicie o Nginx:

$ sudo systemctl restart nginx


Abra o seguinte URL no Google Chrome: 

chrome://settings/certificates 


Clique em Authorities > Import, informe o arquivo /etc/nginx/ssl-certs/empresa.local.crt e marque as 3 opções quando solicitado antes de finalizar.


Acesse https://empresa.local e se verifique o certificado. Caso necessário reinicie seu browser e tente novamente.

Comentários

Postagens mais visitadas deste blog

Configurar teclado americano com acentuação em português + Ç no Ubuntu 18.04LTS e 20.04LTS

Como instalar a impressora Epson L395 via wi-fi no Ubuntu 18.04 LTS e Ubuntu 20.04 LTS