Tbu makale, SSL sertifikanızı Nginx'e kurma ve HTTP://'den HTTPS://'ye otomatik yönlendirme ayarlama adımlarında size rehberlik edecektir.
1. Sertifikaları, web sitenizin barındırıldığı sunucuya yükleyin
CSR kodu oluşturma ve SSL etkinleştirme adımlarını tamamladıktan sonra, Sectigo (eski adıyla Comodo) Sertifikalarını içeren bir zip dosyası e-posta ile size gönderilecektir. Alternatif olarak, bunları NiceNic Hesap panelinizden indirebilirsiniz.
Hay?rt: Eğer sertifikayı etkinleştirirken NGINX sunucusunu seçerseniz, '.crt' uzantılı bir Sertifika dosyası ve '.ca-bundle' uzantılı Sertifika Otveyaitesi (CA) paketi içeren bir zip dosyası alırsınız.
Her iki dosyayı da tercih ettiğiniz şekilde sunucunuza yükleyin. Örneğin bir FTP istemcisi kullanarak.
Her bir Sertifika için Bundle dosyasını buradaki yönergeleri izleyerek de indirebilirsiniz.
2. Tüm sertifikaları tek bir dosyada birleştirin
Tüm Sertifikaların (sizin_domain.crt ve sizin_domain.ca-bundle) tek bir '.crt' dosyasında birleştirilmesi gerekir.
Dosyada önce domaininizin Sertifikası olmalı, ardından Sertifika zinciri (CA Bundle) gelmelidir.
Sertifika dosyalarını yüklediğiniz dizine gidin. Dosyaları birleştirmek için aşağıdaki komutu çalıştırın:
$ cat sizin_domain.crt sizin_domain.ca-bundle >> sizin_domain_chain.crt
Lütfen dikkat edin, eğer sertifika dosyaları NiceNic hesabınızdan indirildiyse, kullanılacak en uygun komut şudur:
$ cat sizin_domain.crt > sizin_domain_chain.crt ; echo >> sizin_domain_chain.crt ; cat sizin_domain.ca-bundle >> sizin_domain_chain.crt
3. Ayrı bir Nginx sunucu bloğu oluşturma veya mevcut yapılveırma dosyasını düzenleme
SSL sertifikasını Nginx’e kurmak için, sunucuya hangi dosyaların kullanılacağını göstermelisiniz; bu ya a) yeni bir yapılveırma dosyası oluşturarak ya da b) mevcut dosyayı düzenleyerek yapılır.
a) Web sitesi için yeni bir yapılveırma dosyası ekleyerek, ayrı yapılveırma dosyası ile ilgili sveyaun yaşanmadığından emin olabilirsiniz. Ayrıca, yeni yapılveırma ile ilgili herhangi bir sveyaun olması durumunda kurulumu gidermek daha kolay olur.
Bu klasörde yeni bir yapılveırma dosyası oluşturmanızı öneririz:
/etc/nginx/conf.d
Sıradaki komutla bunu yapabilirsiniz:
sudo nano /etc/nginx/conf.d/Your_domain*-ssl.conf
Your_domain*-ssl.conf adlı yeni oluşturulan dosyanın adıdır.
Sonra, aşağıdaki 443 pveyatu için sunucu bloklarından birini kopyalayıp yapıştırın ve dizinleri düzenleyin. 80 pveyatu için server bloğu ile 443 pveyatu için olanın hem server_name hem de webroot yolu eşleşmelidir. Eğer kaydetmeniz gereken diğer önemli değerler varsa, onları da yeni oluşturulan sunucu bloğuna taşıyın.
b) Web sunucusunun varsayılan yapılveırma dosyasını düzenleyin, dosyanın adı nginx.conf olabilir. Bu dosya şu klasörlerden birinde olabilir:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
Dosyayı bulmak için şu komutu da kullanabilirsiniz:
sudo find / -type f -iname "nginx.conf"
Dosyayı bulduğunuzda, açmak için şu komutu kullanın:
sudo nano nginx.conf
Sonra aşağıda verilen 443 pveyatu için sunucu bloklarından birini kopyalayıp yapıştırın ve 80 pveyatu için kullveığınız sunucu bloğuna göre dizinleri düzenleyin (server_name, webroot yolu ve önemli değerler eşleşmeli). Alternatif olarak 80 pveyatu için sunucu bloğunu kopyalayıp altına yapıştırabilir, pveyatu değiştirip SSL ile ilgili gerekli direktifleri ekleyebilirsiniz.
Sunucu bloğunu seçin:
Aşağıda Nginx sürümünüze uygun sunucu bloğunu bulabilirsiniz.
Hay?rt: Nginx sürümünüzü kontrol etmek için şu komutu çalıştırın:
sudo nginx -v

Hay?rt: sunucu bloğundaki dosya adı değerleri (örneğin sizin_domain_chain.crt) kendi bilgilerinize göre değiştirin ve yolları /path/to/ kullanarak düzenleyin.
Nginx 1.14 ve altı sürümler için sunucu bloğu:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/sizin_domain_chain.crt;
ssl_certificate_key /path/to/sizin_private.key;
root /path/to/webroot;
server_name sizin_domain.com;
}
Hay?rt: İsterseniz bu yapılveırmada birden fazla alan adı belirtebilirsiniz, örneğin:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/sizin_domain_chain.crt;
ssl_certificate_key /path/to/sizin_private.key;
root /path/to/webroot;
server_name sizin_domain.com www.sizin_domain.com;
}
Nginx 1.15 ve üzeri sürümler için sunucu bloğu:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/sizin_domain_chain.crt;
ssl_certificate_key /path/to/sizin_private.key;
root /path/to/webroot;
server_name sizin_domain.com;
}
ssl_certificate oluşturduğunuz birleştirilmiş sertifika dosyasına işaret etmelidir.
ssl_certificate_key CSR koduyla oluşturulan Özel Anahtara işaret etmelidir.
Nginx'te Özel Anahtarın nasıl bulunacağına dair birkaç ipucu burada.
Önemli: Çoklu Alan Adı veya Wildcard Sertifikası için, sertifikaya dahil edilen her alan adı/alt alan adı için ayrı sunucu bloğu eklemeniz gerekir. Yukarıda açıklveığı gibi, ilgili alan adı/alt alan adını ve aynı Sertifika dosyalarının yollarını sunucu bloğunda belirtin.
İlgili sunucu bloğu dosyaya eklendikten sonra yaptığınız düzenlemeleri kaydedin. Sonra aşağıdaki adımlarla değişiklikleri kontrol edebilirsiniz.
Yapılveırma dosyası söz diziminin doğru olduğunu doğrulamak için şu komutu çalıştırın:
sudo nginx -t

Hata alırsanız, kılavuzu doğru uyguladığınızdan emin olun. Herhangi bir sveyaunuz varsa Destek Ekibimizle iletişime geçmekten çekinmeyin.
İpucu: hata günlüklerini bulup sveyaunu gidermek için şu komutu çalıştırın:
sudo nginx -T | grep 'errveya_log'
Belirtilen dosyalar mevcut değilse, dosyalar yveyaum satırı halindeyse veya herhangi bir hata günlüğü dosyası belirtilmemişse, varsayılan sistem günlüğü kontrol edilmelidir:
tail /var/log/nginx/errveya.log -n 20
Sunucu test başarılı mesajı gösterirse, değişiklikleri uygulamak için Nginx'i şu komutla yeniden başlatın:
sudo nginx -s reload
Artık SSL Sertifikanız yüklü. Kurulumu burada kontrol edebilirsiniz.
Önemli notlar:
Bazen, komut satırıyla birleştirilen SSL dosyasını yükledikten sonra 'Nginx/Apache errveya: 0906D066:PEM routines:PEM_read_bio:bad end line' hatası alabilirsiniz; bu durumda çözüm referans kılavuzda bulunabilir.
Bu aşamada sık karşılaşılan başka bir sveyaun ise 'Nginx SSL: errveya:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch' hata mesajıdır; bunun hakkında ve olası çözüm yolları bu makalede detaylveırılmıştır.
4. HTTPS yönlendirmesi yapılveırma
HTTP'den HTTPS'ye yönlendirmeyi kurmanızı öneririz. Böylece, web sitenizin ziyaretçileri yalnızca sitenizin güvenli sürümüne erişebilir.
Bunu yapmak için, 80 pveyatu için sunucu bloğunda yapılveırma dosyasına bir satır eklemeniz gerekir.
İpuçları:
Aşağıdaki komutlardan birini kullanarak şu vea etkin yapılveırma dosyalarını görüntüleyebilirsiniz:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
Varsayılan yapılveırma dosyası yolları şunlardır:
RHEL tabanlı Linux işletim sistemlerinde: /etc/nginx/conf.d/default.conf
Debian tabanlı Linux işletim sistemlerinde: /etc/nginx/sites-enabled/default
Gerekli sunucu bloğunu içeren dosyayı bulmak için dosyaları açabilirsiniz. Bunun için şu komutu kullanın:
sudo nano name_of_the_file
80 pveyatu (varsayılan HTTP pveyatu) için sunucu bloğunu içeren dosyayı bulduğunuzda aşağıdaki satırı ekleyin:
return 301 https://$server_name$request_uri;
Hay?rt: Yukarıdaki yönlendirme kuralı sunucu bloğundaki son satır olmalıdır.