Aveti intrebari? Sunteti in locul potrivit!
Verificati versiunea Ubuntu
lsb_release -ds
# Ubuntu 19.04
Creati un nou utilizator cu dretpuri sudo
, in acest exemplu folosim johndoe
.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
NOTA: inlocuiti johndoe
cu username-ul dorit
Setati timezone-ul
sudo dpkg-reconfigure tzdata
Asigurati-va ca aveti ultimele actualizari
sudo apt update && sudo apt upgrade -y
instalati pachetele necesare
sudo apt install -y git wget curl socat
sudo apt install -y nginx
Verificati versiunea:
sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)
Ca prim pas in otinerea certificatelor de tip wildcard Let’s Encrypt utilizand acme.sh este necesar sa instalati Python si Lexicon.
Pentru instalara Python:
sudo apt install -y python3
Verificati versiunea:
python3 --version
# Python 3.7.3
Instalarea Lexicon
sudo apt install -y lexicon
Verificati versiunea
lexicon --version
# lexicon 3.0.8
acme.sh
Acme.sh
is an ACME protocol client written purely in Shell (Unix shell) language that automates the process of getting a signed certificate via Let’s Encrypt. It supports ACME v1 and ACME v2, and most importantly it supports ACME v2 wildcard certs. In this section, we install an Acme.sh script.
NOTA: Este recomandat sa folositii utilizatorul root pentru instalarea acme.sh
Schimbati utilizatorul ca root
sudo su - root
Downloadati si instalati acme.sh
.
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd
Verificati versiunea
acme.sh --version
# v2.8.2
Pentru a obtine certificate wildcard este necesar sa validati utilinzand, metoda de validare DNS.
# Configure your API key and username
export PROVIDER=user
export LEXICON_USERNAME="[email protected]"
export LEXICON_TOKEN="XXXXXXXXXXXXXXX"
# RSA 2048
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength 2048
# ECC 256
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength ec-256
NOTE:nu uitati sa inlocuiti example.com
cu numele domeniului dvs. , si inlocuiti valorile pentru API cu cele detinute de catre dvs.
Dupa ce execuati comenzile de mai sus certificatele si cheile le gasiti in:
~/.acme.sh/example.com
directory.~/.acme.sh/example.com_ecc
directory.NOTE: Sa nu folositi fisierele din directorul ~/.acme.sh/
.
Pentru a lista certificatele:
acme.sh --list
Creati un fisier unde sa stoacati certificatele din productie ex directorul /etc/letsencrypt
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Instalati/copiati certificates pentru productie.
# RSA
acme.sh --install-cert -d example.com
--cert-file /etc/letsencrypt/example.com/cert.pem
--key-file /etc/letsencrypt/example.com/private.key
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem
--reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem
--key-file /etc/letsencrypt/example.com_ecc/private.key
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem
--reloadcmd "sudo systemctl reload nginx.service"
Acum am obtinut un certificat wildcard Let’s Encrypt, este necesar sa-l configuram pe Nginx web server. Toate certificatele sunt reinnoite in mod automat la 60 de zile.
Rulati urmatoarea comanda:
exit
Rulati sudo vim /etc/nginx/sites-available/example.com.conf
si populati fisierul cu informatiile de mai jos .Inlocuiti example.com
cu numele domeniului dorit
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com *.example.com;
root /var/www/example.com;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
}
Activati confirgurarea example.com.conf
link-uind fisierul spre directorul sites-enabled
.
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Testati configurarea Nginx
sudo nginx -t
Reincarcati Nginx.
sudo systemctl reload nginx.service