Nginx ile SSL Kurmak ve Konfigüre Etmek

SSL sertifikaları, sitenizde güvenli bir şekilde http ( HTTPS ) etkinleştirilmesine yardımcı olur; bu, sitenizden veya sitenizden iletilen bilgileri şifreleyerek son kullanıcılar ve sunucunuz arasında güvenilir / güvenli bir bağlantı kurmak için esastır.

Nginx ile kullanmak üzere bir sertifika otoritesinden ( CA ) bir SSL sertifikası almak için kendinden imzalı bir sertifikanın nasıl oluşturulacağını ve kurulacağını ve bir sertifika imzalama isteği ( CSR ) oluşturmayı ele alacağız.

Kendinden imzalı sertifikalar oluşturmakta ücretsizdir ve test amacıyla ve yalnızca LAN içi servisler için pratik olarak kullanışlıdır. Halka açık sunucular için , orijinalliğini korumak için CA tarafından verilen bir sertifikanın (örneğin Let’s Encrypt ) kullanılması şiddetle önerilir.

Kendinden imzalı bir sertifika oluşturmak için önce sertifikalarınızın depolanacağı bir dizin oluşturun.

$ sudo mkdir /etc/nginx/ssl-certs/

Daha sonra openssl komut satırı aracını kullanarak kendinden imzalı sertifikanızı ve anahtarı oluşturun.

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

Yukarıdaki komutta kullanılan seçenekleri kısaca açıklayalım:

  • req -X509 – bir x509 sertifikası oluşturduğumuzu gösteriyor.
  • -nodes (NO DES) – “anahtarı şifrelemeyin” anlamına gelir.
  • -days 365 – sertifikanın geçerli olacağı gün sayısını belirtir.
  • -newkey rsa:2048 – RSA algoritması kullanılarak oluşturulan anahtarın 2048 bit olması gerektiğini belirtir.
  • -keyout /etc/nginx/ssl-certs/nginx.key – RSA anahtarının tam yolunu belirtir.
  • -out /etc/nginx/ssl-certs/nginx.crt – sertifikanın tam yolunu belirtir.

Ardından, sanal ana bilgisayar yapılandırma dosyanızı açın ve 443 numaralı bağlantı noktasını dinleyen bir sunucu bloğu bildirimine aşağıdaki satırları ekleyin . /etc/nginx/sites-enabled/default sanal host dosyası ile test yapacağız.

$ sudo vi /etc/nginx/sites-enabled/default

server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;

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

root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;

server_name server_domain_or_IP;

location / {
    try_files $uri $uri/ =404;
}

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

location ~ /\.ht {
    deny all;
}

}

Sonra ssl direktifini nginx yapılandırma dosyasına ekleyin, aşağıdakine benzer görünmelidir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir