Nginx ve Apache Üzerinde GoDaddy SSL Kurulumu

SSL kurulumu tahmin edilenin aksine gayet kolay bir aşama olmakla beraber, hakkında ne yazık ki pek fazla döküman bulunamamakta. SSL sağlayıcı firmalar birbirinden pek farketmeksizin, kurulum genel olarak aynı şekilde. Ben örnek olarak GoDaddy üzerinden anlatacağım ancak genel olarak işlemlerin herhangi bir başka servis sağlayıcıda da aynı olduğunu belirtmeliyim.

Öncelikle sunucunuzda openssl modülünün ekli ve aktif olduğunu kontrol edin.
sudo apt-get install openssl
sudo a2enmod ssl
Bu kısmı geçtikten sonra, sunucunuzda /home veya dilediğiniz, ancak herkesin ulaşamayacağı, herhangi bir konumda,
cd /home
openssl req -newkey rsa:2048 -nodes -keyout alanadiniz.com.key -out alanadiniz.com.csr
Burada size bazı sorular sorulacak, common name kısmına özellikle dikkat edin, eğer wildcard bir SSL sertifikası yükleyecekseniz, *.alanadi.com şeklinde gerçeklemeniz lazım.
Country Name (2 letter code) [AU]:TR
State or Province Name (full name) [Some-State]:Marmara
Locality Name (eg, city) []:Istanbul
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sirket Adi
Organizational Unit Name (eg, section) []:Departman
Common Name (e.g. server FQDN or YOUR name) []:alanadiniz.com
Email Address []:[email protected]
Bu işlem sonucunda size alanadiniz.com.key ve alanadiniz.com.csr şeklinde iki tane dosya oluştuğunu göreceksiniz. SSL sağlayıcı kısmında bize lazım olan kısım .csr ile biten dosya, .key kısmı ise sunucuya özel(private) olan anahtar, bunu paylaşmamanız lazım. Bunun içeriğini bir yere kopyalayın, ufak bir not, -----BEGIN ve -----END şeklinde başlayan kısımları da dahil etmeniz lazım.
cat alanadiniz.com.csr
Bu işlemi tamamladıktan sonra, GoDaddy'de, sertifikalar kısmından sertifikanızı yönet kısmına girin ve sertifika için yeni bir anahtar oluştur kısmına basın, biraz önce ekrana yazdırdığınız sertifika anahtarını buraya yapıştırın ve kaydedin, devamında alanadınızı doğrulama süreci başlayacak. Eğer alan adınız GoDaddy üzerinde kayıtlıysa bu işlem otomatik olarak gerçekleşecek, eğer GoDaddy üzerinde kayıtlı değilse, whois bilgileriniz üzerinden, domainin kayıtlı olduğu email adresine bir doğrulama emaili gidecek. Eğer whois bilgleriniz gizleniyorsa(protected), bunu kaldırmanız lazım.

Doğrulama işlemi tamamlandıktan sonra sertifikanız hazır olacak, indire bastıktan sonra Apache'yi seçip zip dosyasını indirin. Bu dosyayı açınca karşınıza iki dosya çıkacak. gd_* şeklinde başlayan dosya intermediate sertifika dosyası iken, diğeri de domaininize ait .crt dosyası. gd_* şeklinde olan CA sertifikasını intermediate.crt şeklinde, diğer dosyayı ise alanadiniz.com.crt şeklinde yeniden adlandırın.

Nginx için, bu dosyaları birleştirmemiz lazım.
cat alanadiniz.com.crt intermediate.crt > alanadiniz.com.chained.crt
scp alanadiniz.com.chained.crt [email protected]_IP_ADRESI:/home/kullaniciadi
Dosyaları birleştirip sunucuya attıktan sonra geriye sadece bunu nginx'e belirtmek kalıyor.
cd /etc/nginx/sites-enabled
sudo nano default
Muhtemelen 80 olan kısmı 443 ile değiştirin, artık default sunucunuz 443 portu üzerinden çalışacak.
listen 443 ssl;
Alan adınızının bulunduğu kısımda alttaki düzenlemeleri yapın
server_name alanadiniz.com;
ssl_certificate /home/kullaniciadi/alanadiniz.com.chained.crt;
ssl_certificate_key /home/kullaniciadi/alanadiniz.com.key;
Eğer http olarak gelen istekleri(request) https'e yönlendirmek isterseniz de, yine server bloğuna alttaki eklemeyi yapabilirsiniz.
rewrite ^/(.*) https://alanadiniz.com/$1 permanent;
Son olarak bu dosyayı kaydedip, nginx'i tekrar başlatın.
sudo service nginx restart
An itibariyle SSL'in sunucunuzda aktif olması lazım.

Apache için de süreç benzer şekilde, default olan ya da dilediğiniz sistem için ayarlarını açmanız lazım.
cd /etc/apache2/sites-available
cp 000-default.conf 000-default.conf.orig
sudo nano 000-default.conf
Daha sonrasında   şeklinde başlayın kısımdaki 80 portunu 443 ile değiştirmelisiniz. Daha sonrasında da
SSLEngine on
SSLCertificateFile /home/kullaniciadiniz/alanadiniz.com.crt
SSLCertificateKeyFile /home/kullaniciadiniz/alanadiniz.com.key
Apache 2.4.8 ve sonrası için
SSLCACertificateFile /home/kullaniciadiniz/intermediate.crt
Öncesi için de
SSLCertificateChainFile /home/kullaniciadiniz/intermediate.crt
Son olarak da, 80 portuna gelen http istekleri 443'e yönlendirmek için de .conf dosyanızın üstüne alttaki gibi bir kısım ekleyebilirsiniz.
ServerName alanadiniz.com
Redirect permanent / https://alanadiniz.com/
Artık sunucuyu baştan başlatabilir(restart), SSL'i aktif edebilirsiniz.
sudo service apache2 restart
Ufak bir not, sitenizde http:// şeklinde linklerin olmadığına emin olun, örneğin sitenizdeki bir css dosyasına olan istek http://alanadiniz.com/css/style.css gibi değil de  https://alanadiniz.com/css/style.css  şeklinde olmalı.