Обзор debian 9
İçindekiler:
- Ön şartlar
- Certbot'u yükle
- Güçlü Dh (Diffie-Hellman) Grubu Oluştur
- Let's Encrypt SSL sertifikası edinme
- Otomatik yenileme SSL sertifikasını şifreleyelim
- Sonuç
Let's Encrypt, Internet Security Research Group (ISRG) tarafından geliştirilen ücretsiz ve açık bir sertifika yetkilisidir. Let's Encrypt tarafından verilen sertifikalara bugün neredeyse tüm tarayıcılar tarafından güvenilmektedir.
Bu öğreticide, Debian 9'da Nginx için ücretsiz bir SSL sertifikası almak için Certbot aracını nasıl kullanacağımızı açıklayacağız. Nginx'in SSL sertifikasını kullanacak ve HTTP / 2'yi etkinleştirecek şekilde nasıl yapılandırılacağını da göstereceğiz.
Ön şartlar
Bu eğiticiye devam etmeden önce aşağıdaki ön koşulların karşılandığından emin olun:
- Sudo ayrıcalıklarına sahip bir kullanıcı olarak oturum açın. Genel sunucu IP'nizi işaret eden bir alan adına sahip olun.
example.comkullanacağız. Bu talimatları izleyerek Nginx yüklü olsun Alan adınız için bir sunucu bloğunuz var. Nasıl oluşturacağınızla ilgili ayrıntılar için bu talimatları takip edebilirsiniz.
Certbot'u yükle
Certbot, SSL sertifikalarını şifreleyelim ve web sunucularını sertifikaları kullanacak şekilde yapılandıracak görevleri otomatikleştirebilen tam özellikli ve kullanımı kolay bir araçtır. Certbot paketi, varsayılan Debian depolarına dahil edilmiştir.
Paketler listesini güncelleyin ve certbot paketini kurun:
sudo apt update
sudo apt install certbot
Güçlü Dh (Diffie-Hellman) Grubu Oluştur
Diffie – Hellman anahtar değişimi (DH), kriptografik anahtarları güvenli olmayan bir iletişim kanalı üzerinden güvenli bir şekilde alışverişi yapma yöntemidir. Güvenliği güçlendirmek için yeni bir 2048 bit DH parametre seti oluşturacağız:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
İsterseniz boyutu 4096 bite kadar değiştirebilirsiniz, ancak bu durumda, sistem entropisine bağlı olarak üretim 30 dakikadan fazla sürebilir.
Let's Encrypt SSL sertifikası edinme
Alanımız için bir SSL sertifikası almak için,
${webroot-path}/.well-known/acme-challenge
dizininde istenen alanı doğrulamak için geçici bir dosya oluşturarak çalışan Webroot eklentisini kullanacağız. Let's Encrypt sunucusu, istenen etki alanının certbot'un çalıştığı sunucuya çözümlendiğini doğrulamak için geçici dosyaya HTTP istekleri gönderir.
.well-known/acme-challenge
için tüm HTTP isteklerini
/var/lib/letsencrypt
tek bir dizine
/var/lib/letsencrypt
.
Aşağıdaki komutlar dizini oluşturur ve Nginx sunucusu için yazılabilir yapar.
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
Kodun kopyalanmasını önlemek için, tüm Nginx sunucu blok dosyalarımıza dahil edilecek aşağıdaki iki parçacığı oluşturun.
Metin düzenleyicinizi açın ve ilk
letsencrypt.conf
parçasını oluşturun,
letsencrypt.conf
:
sudo nano /etc/nginx/snippets/letsencrypt.conf
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
Mozilla tarafından önerilen
ssl.conf
içeren ikinci snippet
ssl.conf
oluşturun, OCSP Zımbalama, HTTP Sıkı Aktarım Güvenliği'ni (HSTS) etkinleştirir ve güvenlik odaklı birkaç HTTP üstbilgisini zorlar.
sudo nano /etc/nginx/snippets/ssl.conf
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 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:!DSS'; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
Tamamlandığında, etki alanı sunucusu blok dosyasını açın ve aşağıda gösterildiği gibi
letsencrypt.conf
snippet'ini
letsencrypt.conf
:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
sites-enabled
dizine sembolik bir bağlantı oluşturarak yeni sunucu bloğunu
sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Değişikliklerin etkili olması için Nginx hizmetini yeniden başlatın:
sudo systemctl restart nginx
Artık Certbot'u webroot eklentisiyle çalıştırabilir ve SSL sertifika dosyalarını şu şekilde elde edebilirsiniz:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
SSL sertifikası başarıyla alınırsa, terminalinize aşağıdaki mesaj yazdırılır:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-07-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Ardından, etki alanı sunucusu bloğunu aşağıdaki gibi düzenleyin:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }
Yukarıdaki yapılandırma ile HTTPS'yi zorluyoruz ve www'den www olmayan sürüme yönlendiriyoruz.
Değişikliklerin etkili olması için Nginx hizmetini yeniden yükleyin:
Otomatik yenileme SSL sertifikasını şifreleyelim
Şifreleme sertifikaları 90 gün geçerlidir. Sertifikalar süresi dolmadan otomatik olarak yenilemek için, certbot paketi günde iki kez çalışan bir cronjob oluşturur ve süresi dolmadan 30 gün önce tüm sertifikaları otomatik olarak yeniler.
Sertifika yenilendikten sonra certbot webroot eklentisini kullandığımızdan, nginx hizmetini de yeniden yüklememiz gerekiyor.
/etc/cron.d/certbot
dosyasına
--renew-hook "systemctl reload nginx"
aşağıdaki gibi
/etc/cron.d/certbot
:
sudo nano /etc/cron.d/certbot
/etc/cron.d/certbot
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"
Bu komutu çalıştırarak otomatik yenileme işlemini test edin:
sudo certbot renew --dry-run
Herhangi bir hata yoksa, yenileme işleminin başarılı olduğu anlamına gelir.
Sonuç
Günümüzde SSL sertifikasına sahip olmak şarttır. Web sitenizi korur, SERP sıralama konumunu artırır ve web sunucunuzda HTTP / 2'yi etkinleştirmenizi sağlar.
Bu eğiticide, etki alanınız için SSL sertifikaları oluşturmak üzere certbot'u Şifreleyelim istemcisini kullandınız. Ayrıca kodu çoğaltmamak için Nginx snippet'leri oluşturdunuz ve Nginx'i sertifikaları kullanacak şekilde yapılandırdınız. Eğiticinin sonunda otomatik sertifika yenilemesi için bir cronjob ayarladınız.
nginx debian certbot ssl şifreleyelimBu yazı Debian 9 serisine LEMP Stack Nasıl Kurulur?
Bu serideki diğer gönderiler:
• Ubuntu 18.04 Üzerine MariaDB Kurulumu • Debian 9 Üzerinde Nginx Kurulumu • Debian 9 Üzerinde PHP Kurulumu • Debian 9 Üzerinde Nginx Sunucu Blokları Kurulumu • Debian 9'da Şifreleme ile Güvenli NginxCentos 7'yi şifreleyelim ile güvenli nginx
Bu eğitimde, Centgin 7'de certbot aracını kullanarak Nginx'inizi Let's Encrypt ile nasıl güvenceye alacağınız hakkında adım adım talimatlar vereceğiz
Ubuntu 18.04'te şifreleyelim ile güvenli nginx
Let's Encrypt, Internet Security Research Group tarafından geliştirilen ücretsiz ve açık bir sertifika yetkilisidir. Bu eğitimde, Ubuntu 18.04'teki certbot aracını kullanarak Nginx'inizi Let's Encrypt ile nasıl güvenceye alacağınıza ilişkin adım adım talimatlar vereceğiz
Ubuntu 16.04 üzerinde şifreleyelim ile güvenli nginx
Bu öğreticide, Ubuntu 16.04'teki certbot aracını kullanarak Nginx'inizi Let's Encrypt ile nasıl güvenceye alacağınız hakkında adım adım talimatlar vereceğiz







