Cloudflare ile Nginx SSL Kurulumu

Bildiğiniz üzere Cloudflare tüm kullanıcıları için ücretsiz SSL sertifikası sağlamakta. Öncelikle sizlere bu SSL sertifikalarından bahsedeceğim.

https://www.cloudflare.com adresine girerek Cloudflare hesabınına giriş yapıp sitenizi seçtikten sonra, üst tarafta bulunan Crpto sekmesine tıklıyoruz.

Cloudflare SSL Crypto

En üstte SSL bölümünü göreceksiniz.

Cloudflare SSL Type

4 farklı tip SSL özelliği bulunmakta. Bunlar sırasıyla;

  • OFF: SSL kapalıdır.
  • FLEXIBLE: Kullanıcı ve Cloudflare arasında SSL kullanılır. Cloudflare ve sunucu arasında herhangi bir SSL bağlantısı yoktur.
  • FULL: Kullanıcı – Cloudflare arasında ve Cloudflare – sunucu arasında SSL sertifikası olması gerekir. Ancak SSL sertifikası doğrulaması göz ardı edilir. Self signed sertifikalar kullanılabilir.
  • FULL (STRICT): Kullanıcı – Cloudflare arasında ve Cloudflare – sunucu arasında geçerli bir SSL sertifikası olması gerekir. Harici olarak satın aldığınız ya da Cloudflare tarafından doğrulanmış bir sertifika kullanabilirsiniz.

Full (strict) seçerek devam edelim. Eğer geçerli bir SSL sertifikanız varsa aşağıdaki adımları uygulamanıza gerek yok. Devamında bahsedeceğim konu, sunucunuz için Cloudflare tarafından onaylı SSL sertifikası oluşturmak hakkında olacaktır.

Origin Certificates kısmına gelip Create Certificate tıklıyoruz.

Cloudflare SSL Create Origin Certificate

Origin Certificate Installation sayfasında herhangi bir değişiklik yapmadan Next butonuna tıklıyoruz.

Cloudflare SSL Origin Certificate Installation

Cloudflare siteniz için Origin Certificate ve Private Key üretecektir.

'Origin Certificate'
-----BEGIN CERTIFICATE-----
MIIEmjCCA4KgAwIBAgIUAMKoJ3dw1e5iRN7+IldbU3+RA94wDQYJKoZIhvcNAQEL
BQAwgYsxCzAJBgNVBAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMTQw
MgYDVQQLEytDbG91ZEZsYXJlIE9yaWdpbiBTU0wgQ2VydGlmaWNhdGUgQXV0aG9y
aXR5MRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlh
MB4XDTE4MTAyNDA2MDUwMFoXDTMzMTAyMDA2MDUwMFowYjEZMBcGA1UEChMQQ2xv
dWRGbGFyZSwgSW5jLjEdMBsGA1UECxMUQ2xvdWRGbGFyZSBPcmlnaW4gQ0ExJjAk
BgNVBAMTHUNsb3VkRmxhcmUgT3JpZ2luIENlcnRpZmljYXRlMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtIWemM+lZuoaTWrSo0v1q8OTRTOGMuNCYl7/
GMj1ooSqbZGv6fA/3SeSyDJicn2jrC7c5Rf6/H1Gh0xFdIkUUsxhi4OIfUDvo9WG
TbH/WJTzFYVwTu28YDxi9NM7fj/xdLJ6QHQ4RgJX4CnhhIKB4PvZz7/wYg5DEHYD
QectQu6FJtzmdyXdkBOXYwueHOfyNuuBXhhA50zz5VjHuuyXscIWpE4J/pL1yYnP
4ds93gwrYRinPEBwSlAQZWnxR829ju3hx5fwz9kcdxsV4qwz0Y/eWEioB07bq+80
3T9NeQAGwgJ8h+aY3yAq43A35mbdjpreMXQZc3SQWszvZY2GrwIDAQABo4IBHDCC
ARgwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
ATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBT4uQe42rRZheHBHGPHt7BQkQO3xjAf
BgNVHSMEGDAWgBQk6FNXXXw0QIep65TbuuEWePwppDBABggrBgEFBQcBAQQ0MDIw
MAYIKwYBBQUHMAGGJGh0dHA6Ly9vY3NwLmNsb3VkZmxhcmUuY29tL29yaWdpbl9j
YTAdBgNVHREEFjAUggkqLmtpMS5vcmeCB2tpMS5vcmcwOAYDVR0fBDEwLzAtoCug
KYYnaHR0cDovL2NybC5jbG91ZGZsYXJlLmNvbS9vcmlnaW5fY2EuY3JsMA0GCSqG
SIb3DQEBCwUAA4IBAQAKl/LX0IMuqMeVKA3wxffcfUMAFoRBpaWpX7sv/9YaIhFA
IFydkOfA3Wbvm/J2h3RbICdFyp5YMg6T0/+LWt2jkq9Oy5S0pJAt1pn0eevlY9Sh
8ayDdXBBadOg51fJR8I0gfm5GeSRkN1RVYfpPP5OZtszsl1cRiGXxHVq7OFvVBCM
wLeYgtLGhvtOaoPhVTCjHwAtjF3hg8j7IwU/U7cAqd12a+hG4i/LRnKLkrA6Z8TD
b+H9VjXxcue/QLs8n/OpX4NUd5igX3wSo/9Rv6VrI4miej6cF1Lv93y4weQcJIGx
UEjRqJEIegudvCpeXlzRRer4xoQ7cmtBGmMUIcAh
-----END CERTIFICATE-----
'Private Key'
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC0hZ6Yz6Vm6hpN
atKjS/Wrw5NFM4Yy40JiXv8YyPWihKptka/p8D/dJ5LIMmJyfaOsLtzlF/r8fUaH
TEV0iRRSzGGLg4h9QO+j1YZNsf9YlPMVhXBO7bxgPGL00zt+P/F0snpAdDhGAlfg
KeGEgoHg+9nPv/BiDkMQdgNB5y1C7oUm3OZ3Jd2QE5djC54c5/I264FeGEDnTPPl
WMe67JexwhakTgn+kvXJic/h2z3eDCthGKc8QHBKUBBlafFHzb2O7eHHl/DP2Rx3
GxXirDPRj95YSKgHTtur7zTdP015AAbCAnyH5pjfICrjcDfmZt2Omt4xdBlzdJBa
zO9ljYavAgMBAAECggEAB4TquXO8J1dRYLjatfBqiSg8hTYsj1FabZaq86FD0Wxd
XTu1wwb9vEog54qNuH9DXczf6LhloZG4RY5MPgh5Gpjvw35Ct6e/anHMWGG1blFZ
9v6XrZ6G+6rqiJA8JBUpCy5A0qF27uC7rilpkR5X8HDmPnWucYFut0K9a9oac+L4
jptWNmQUj4DmBy73OIotRq5Lgpf6LnUeMRTVgIHjs4cJH5l6Vdi/GGQ1dzEXwlfu
VYnpUQnVn4d5a0EXO4xqfG4a20wcN7sw9l2zG3cUWqExdjPK1LSIIYxTaC2NrvzZ
1EhGo5p7grvel7XS49VWVlEzPXxelto2FRz3GsZgTQKBgQDmHiaiMSHvBnOh1LjG
KRA5M+qQr5PTIJ+jFrJZyo2VuLERpYwQuVP7BDO0wH5JTABdWRsI09TM8oI8FIQf
3jVVsWMHcBpCiuhOPCT2LJzjhgjt1ADF7X8B9+YLEBW+QMjp0Q0etodi0oLHTc/Q
51rYRMS7oPYdtyjF/RrpCGhkMwKBgQDI03D8mqGblMMA1dvCIMQsY2BWQ0tN4i4d
k+vRq0We3k2x0BKLM8uTNFSLk1Ibtaou2UkC9xKm+RcYwRCQHW6MuNo2A7HXXCPD
gdgXA6wZAxWJh2znOAI2XTMG6Hnom8DK/dmfIISLiVcjFvUXA4bv6zjae8o2g9NX
sidIiWr3lQKBgG8+cCrEWcU1dzzqmxCg1UjyAhlD59CO2t16oWmq89tHV8JSJ24G
ScT1eRGOZP6GET8PTnRsA1m4eqEUwfKt91af1GHKHcfBYyA/Dxc65fVP3I0sidsl
PtryvnDmq7w3kWkHOLJ6RuTNI4+53Bb/YPlf9UNHQvOGkd10yEeTWvPlAoGATRkf
n1qeAGS0GHYB0B1UMtZT/coH9vaGTcSkG/Js3/joSwNemyJfXTwR2SPNueWcWDAC
36iK+J9YRqCYAzvJXSz6WRJCDDPLZxtKIku+njuY4Rukq3/NGaHeHSDS7IIfGc8q
5PRO7mLjmQ0POq6X9zOOuBIeJ5+kW16Bxk87SaECgYAr2aIKvdtIFiBJU3A8CVIA
BSOWjeEDcyfsKT0Ia8b84h6Xw5mdDwFCyt6OPziIqjrXuiJJCjgPm1IVN7Y+N4a9
K8b//uSvu9zgPWor43nrjTSv8qo472U+JPJIUPp+/6MGjCkZnhqfdUxAVPyTRhfb
Vj3W3hI3rB4B9pPjJTACqw==
-----END PRIVATE KEY-----


SSL Sertifikasının Sunucuya Yüklenmesi

Sunucunuza root kullanıcısı ile SSH girişi yapın. Aşağıdaki komut ile Nginx altında SSL sertifikalarını depolamak için bir klasör oluşturun.

root@web:~# mkdir /etc/nginx/ssl

Klasöre giriş yapın

root@web:~# cd /etc/nginx/ssl

Bu noktada iki farklı dosya oluşturmamız gerekiyor. Birisi sertifika diğeri de anahtar için. Öncelikle anahtar ile bağlayalım.

root@web:/etc/nginx/ssl# nano siteniz-key.pem

Private key içeriğini kopyalayıp kayıt edin.

Cloudflare SSL Private Key

Aynı işlemi sertifika için de yapmamız gerekiyor.

root@web:/etc/nginx/ssl# nano siteniz-cert.pem

Origin Certificate içeriğini buraya yapıştırıp kaydediyoruz.

Origin Certificate

Nginx içinde sites-enabled kısmına gelelim var aktif olarak çalışan sitemizin SSL sertifikasını tanıtalım.

root@web:/etc/nginx/ssl# cd /etc/nginx/sites-enabled/

Siteminiz conf dosyasını düzenleyelim

root@web:/etc/nginx/sites-enabled# nano site.conf

Mevcut conf dosyamızın içine aşağıdaki satırları ekleyelim.

listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl on;
ssl_certificate     /etc/nginx/ssl/siteniz-cert.pem;
ssl_certificate_key    /etc/nginx/ssl/siteniz-key.pem;

Kaydedip çıktıktan sonra ağağıdaki komut ile Nginx’i yenileyelim.

nginx -t && service nginx reload

Aşağıdaki mesaj ile karşılaşırsanız ayarlarda herhangi bir sıkıntı yoktur. Sunucu tarafınızda da çalışan geçerli bir sertifikanız var demektir

   nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful


Siteyi sadece SSL olarak çalıştırmak

Ek olarak eğer ki tüm HTTP trafiğini HTTPS yönlendirmek isterseniz Cloudflare üzerinde “Always Use HTTPS” seçeneğini aktif edebilirsiniz.

Always Use HTTPS

Herhangi bir soru, sorun ve yardım isteklerinizi yorumlarda iletirseniz, elimden geldiğince yardımcı olmaya çalışırım. İyi günler dilerim.

Yorum yapın