Kategoriler
Diğer Toplum Web

Let’s Encrypt kullanarak A+ SSL düzeyi nasıl sağlanır

Let’s Encrypt kullanarak A+ SSL düzeyi nasıl sağlanır?

Let’s Encrypt ücretsiz, otomatik ve açık bir sertifika yetkilisidir. Herhangi bir ücret ödemeden sitelere DV (domain validate) seviyesinde SSL güvenlik sertifikası sunar.

Sizler de Let’s encrypt sertifikasını sitenizde kullanıyor ve sitemizdeki gibi SSLLABS sitesi üzerinden; Lavinya.Net için SSL Kontrolü A+ değerlendirme düzeyine sahip olmak, ayrıca bilinen birçok tarayıcıda (browser) sitenizin açılabilmesini istiyorsanız yazımızı okumaya devam edin.Öncelikle sunucumuzda Ubuntu 16.04.5 LTS ve üzerinde nginx/1.13, OpenSSL 1.0.2g, Apache 2.4.18 ve plesk 17.9 kullandığımızı belirtilelim.

Sizler de benzer yazılımlar kullanıyor iseniz; A+ SSL düzeyine sahip olmak ve websitenizde kullandığınız SSL sertifikası ile hemen hemen bilinen her tarayıcı ile erişebilir olmalısını hem de güvenli olmasını isterseniz; öncelikle Let’s encrypt eklentisinin+nginx’in OpenSSL 1.0.2g sunucunuzda kurulu olduğunu varsayıyorum.

Dikkat: Tüm bunları yapmadan önce sunucunuzun veya websitenizin veya değiştirelecek dosyaların bir yedeğini almayı unutmayın.

Lavinya.Net SSL A+
Lavinya.Net SSL A+

1-Plesk panelde > Apache ve nginx Ayarları kısmında > HTTPS için ek direktifler bölümüne aşağıdaki kodu ekliyoruz. Bu kodu ekleyerek HSTS ( HTTP Strict Transport Security ) downgrade denilen saldırıları önlüyoruz. Bu bir nevi tarayıcılarda kullanıcıyı bu site için https gezintisine zorlar.
Frame ayarlarını SAMEORIGIN ayarlayarak yalnızca bizim websitemizde içiçe panellere izin veriyoruz.
X-XSS-Protection ayarlaması yaparak sitemizi XSS saldırılarına karşı koruma altına alıyoruz.

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"

#Header set X-XSS-Protection "1; mode=block"
Header always append X-Frame-Options SAMEORIGIN


# (1) (2)
Header set X-XSS-Protection "1; mode=block"

# `mod_headers` cannot match based on the content-type, however,
# the `X-XSS-Protection` response header should be send only for
# HTML documents and not for the other resources.


Header unset X-XSS-Protection

https://hstspreload.org/ adresine de gidip sitemizi tarayıcılarda hsts önyükleme listesine eklenmesini sağlıyoruz. Özellikle en fazla kullanılan chrome tarayıcısı gibi. Buradan yapılan başvuru birkaç gün sürebilir. örnek: https://hstspreload.org/?domain=lavinya.net

2-/etc/nginx/conf.d dizini altındaki ssl.conf dosyamızın içeriğini aşağıdaki gibi değiştirip kaydediyoruz.
ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:!DSS:;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Bunu yaparak bilinen tüm tls1 tls2 tls3 destekli tarayıcılarda sitemizin açmasını sağlıyoruz.
3-/etc/nginx/ dizini altındaki nginx.conf dosyamıza aşağıdaki include /etc/nginx/conf.d/*.conf; satırından sonra gelmek üzere aşağıda satırları ekliyoruz.
# Cache SSL Sessions for up to 10 minutes
# This improves performance by avoiding the costly session negotiation process where possible
ssl_session_cache shared:SSL:10m;
# ssl_session_timeout 5m; # this is a default, but can be changed
# allow Nginx to send OCSP results during the connection process
ssl_stapling on;

Bunu yaparak ssl sertifikamızı önbelleğe alıyoruz.

4-Şimdi sitemizin anadizinindeki (public, public_html, httpdocs olabilir) .htaccess dosyasına aşağıdaki satırları ekleyerek tüm http sorgularının https ‘ye otomatik yönlendirilmesini sağlıyoruz.
# ----------------------------------------------------------------------
# | Forcing `https://` |
# ----------------------------------------------------------------------

# Redirect from the `http://` to the `https://` version of the URL.
# https://wiki.apache.org/httpd/RewriteHTTPToHTTPS


RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

5-Şimdi sunucumuza reset atıyoruz.
reboot

Sorgulama için: Lavinya.Net için SSL Kontrolü sitenizin adresini değiştirerek sorgulama yapabilirsiniz. Kaynak göstererek bu yazıyı kullanabilir, dağıtabilirsiniz.

Ana düzenlemeler bunlardı arkadaşlar. Yukarıdaki yazılımlar yüklü ve belirttiğimiz düzenlemeleri yapmanıza rağmen A+ sertifikaya sahip olamadı iseniz lütfen buraya yazın yardımcı olalım arkadaşlar.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

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