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.
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 ?
Reçep bey yorumunuzu yeni gördüm, ve makaleyi sizin istediğiniz şekilde conf dosyasını revize ettim.