Posts Tagged ‘generare certificat nginx’

Generarea si instalarea unui certificat SSL cu Nginx si openSSL

misc-cookiePrimul pas este crearea unui folder in care vom stoca certificatul: /etc/nginx/ssl

mkdir /etc/nginx/ssl

cd /etc/nginx/ssl

Acum creem Server Key si Certificate Signing Request pentru certificat:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.crt

Aici urmeaza un wizzard pe care il vom parcurge si la care cea mai importanta linie este cea a common name-ului unde tebuie introdus domeniul pentru carte am generat certificatul.

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:NYC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc
Organizational Unit Name (eg, section) []:Dept of Merriment
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:webmaster@awesomeinc.com

Acum ca am terminat cu generarea efectiva a certificatului urmeaza configurarea lui din nginx. Asadar in VirtualHost-ul siteului example.com pentru care am creat certificatul, adaugam:

# HTTPS server
server {
listen 443;
server_name example.com;

root /usr/share/nginx/www;
index index.html index.htm;

ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
}

Acum o alta problema care apare este aceea ca pagina functioneaza si cu http si cu https, iar noi vrem sa mearga doar cu https, asa ca mai adaugam un:

rewrite ^ https://$server_name$request_uri? permanent;

in bucla unde este pus „listen 80”. Ca sa imi fie mai simplu eu am facut in felul urmator; Pentru inceput am modificat listen 80 in 443 fara sa mai adaug liniile de configurare pentru portul 443, air dupa ce am restartat nginx si am vazut ca functioneaza, deasupra buclei server listen 443 am mai adaugat un server listen 80 cu conditie de redirectare 80 -> 443 astfel:

server {
listen 80;
server_name my.domain.com;
rewrite ^ https://$server_name$request_uri? permanent;
}

Restart la Nginx si totul ar trebui sa functioneze corect.

srv StandDuPp
Articole recente