Genel Linux Web Tasarım

Nginx Serverde Hostlarınıza Wildcard SSL Ekleme

Merhaba, bu makalede size daha önceki makalede Plesk panel üzerinden ücretsiz wildcard ssl nasıl yükleyebileceğiniz konusuna değinmiştik. Şimdide nginx üzerinden nasıl wildcard ssl yükleyebilir ve nginx yapılanmasına değineceğim. Yapacağımız işlemler, ilk önce ssl sertifikalarımızı alıp sunucumuza kaydediyoruz, ardından wildcard host oluşturup ssl leri hostumuza tanımlıyoruz.

Bind DNS ve Ngnix kurulumunu https://www.zulfumehmet.com/centos-7-nginx-ve-php-kurulumu/ bu makale dizinde bulabilirsiniz.

SSL Sertifikası Oluşturma

https://www.sslforfree.com/ adresine girip domain adresimizi yukardaki gibi tanımlıyoruz.

Manually Verify Domain butonuna tıklıyoruz.

DNS kayırlarını girmemiz için önce nanodan bekts.tk.zone dosyasını açıp düzenleyelim.




İlgilili txt kayıtlarını zone dosyamıza kaydediyoruz.

Bind DNS resetleyelim bir hata alırsanız zone dosyasını tekrar kontrol ediniz.

Herhangi bir hata ile karşılaşmadıysanız Download SSL Certificate diyerek SSL dosyamızı oluşturmaya geçelim.

Sertifika Kurulumu

İlk önce boş dosyaları oluşturalım. İstediğiniz yere oluşturabilirsiniz ben /etc/nginx/ssl dizinin içinde toplayacağım ssl sertifikalarını.

echo “private_key_content” > /etc/nginx/ssl/bektastk.key
echo “certificate_content” >> /etc/nginx/ssl/bektastk.crt
echo “ca_bundle_content” >> /etc/nginx/ssl/bektastk.cbc

Yukardaki komut ile boş ssl sertifikalarımızı oluşturalım.

İlgili dosyalara ssl kopyalayalım

Örneğin bektastk.key dosyasına ilgili key kopyalayıp kaydediyorum. Diğerlerini de aynı şekilde kopyalayıp kaydedelim.

Şimdi hostumuza ait olan conf dosyasını açıyoruz.

 nano /etc/nginx/sites-enabled/bektas.tk.conf

İlgili düzenleme şu şekilde olacak.

server {
server_name bektas.tk www.bektas.tk;
listen 80;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/bektastk.crt;
ssl_certificate_key /etc/nginx/ssl/bektastk.key;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
root /var/www/bektas.tk/html;
access_log /var/www/bektas.tk/bektas_log.log;
error_log /var/www/bektas.tk/bektas_error.log;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
}
location ~ /\.ht {
deny all;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
}
server {
server_name ~^(.*)\.bektas\.tk$ ;
listen 80;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/bektastk.crt;
ssl_certificate_key /etc/nginx/ssl/bektastk.key;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
root /var/www/bektas.tk/html/wildcard;
access_log /var/www/bektas.tk/bektas_log.log;
error_log /var/www/bektas.tk/bektas_error.log;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
}
location ~ /\.ht {
deny all;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
}

İlgili doya ile sitemize gelen http protokollerini https olarak yönlendirecektir. İlgili düzenlemeleri yapın domain adresini ve dosya dizinini kendi hostunuza göre ayarlayınız. Gerekli düzenlemeleri bitirdikten sonra kayır edip çıkalım ve zone dosyamızı açıp düzenleyelim.

*.bektas.tk diye A kaydı açıyoruz. Dosyayı kaydettikten sonra nginx ve bind dns resetleyelim.

Herhangi bir yanlışlık olmadıysa sunucular resetlenmesi gerekiyor. Bir hata alırsanız dosyaları kontrol ediniz. Her şey yolunda gitti ise domainimizi kontrol edelim.

Gördüğünüz gibi wildcard domainimiz güvenli olarak görünmektedir.




Bazı arkadaşlar hostları açarken 403 Forbidden hatası aldıklarını öğrendim. Log dosyasını incelediğim zaman is forbidden (13: Permission denied), bu hatayı verdiğini gördüm. Bunu aşmak için izinleri düzenlemeniz gerekmektedir.

Sırasıyla aşağıdaki komutları giriniz.

sudo setsebool -P httpd_can_network_connect on
getenforce
chcon -Rt httpd_sys_content_t /var/www/bektas.tk/html

Kolay gelsin.

2 Yorumlar
  1. Recep Akkoç 5 yıl önce
    Cevapla

    Merhabalar, Peki bu işlemleri yaptıktan sonra https’siz gelen http taleplerine sunucumuz cevap dönecek mi ? yada https siz gelen talepleri https’e zorlamak icin ne yapmamız gerekmektedir ?

Yorum Yaz

*E-mail adresiniz gizli kalacaktır.

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

Öneriler

Yeni Makaleler