Ubuntu 16.04 LTS - обзор нововведений!
İçindekiler:
- Ön şartlar
- Certbot'u yükle
- Güçlü Dh (Diffie-Hellman) Grubu Oluştur
- Let's Encrypt SSL sertifikası edinme
- SSL sertifikası otomatik yenileme
- 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, Ubuntu 16.04'teki certbot aracını kullanarak Nginx'inizi Let's Encrypt ile nasıl koruyacağınızla ilgili adım adım talimatlar vereceğiz.
Ön şartlar
Bu eğiticiye devam etmeden önce aşağıdaki önkoşulları karşıladığınızdan emin olun:
- Genel sunucu IP'nizi gösteren bir alan adınız var. Bu öğreticide
example.comkullanacağız. Ubuntu 16.04 Üzerinde Nginx Nasıl Kurulur'u izleyerek Nginx yüklüdür.
Certbot'u yükle
Certbot, Let's Encrypt SSL sertifikalarını almak ve web sunucularını yapılandırmak için görevleri otomatikleştirebilen python ile yazılmış bir yardımcı programdır.
İlk olarak, ek PPA'lar eklemek için gereken
add-apt-repository
aracını sağlayan
software-properties-common
paketini yükleyin.
Paketler dizinini güncelleyin ve aşağıdakilerle
software-properties-common
olan
software-properties-common
yükleyin:
sudo apt update
sudo apt install software-properties-common
Yükleme tamamlandıktan sonra, aşağıdaki komutu kullanarak certbot PPA deposunu sisteminize ekleyin:
sudo add-apt-repository ppa:certbot/certbot
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şturun:
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 adını 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.
Daha basit hale getirmek için
.well-known/acme-challenge
için tüm HTTP isteklerini
/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 ekleyeceğimiz aşağıdaki iki parçacığı oluşturun.
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
/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;
Yukarıdaki snippet'te Mozilla tarafından önerilen yongalayıcılar bulunur, OCSP Zımbalama, HTTP Sıkı Aktarım Güvenliği (HSTS) etkinleştirilir ve güvenlik odaklı birkaç HTTP üstbilgisi uygulanır.
letsencrypt.conf
oluşturulduktan sonra, etki alanı sunucusu bloğunu açın ve aşağıda gösterildiği gibi
letsencrypt.conf
snippet'ini
letsencrypt.conf
:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
sites-enabled
olduğu
sites-enabled
sites-available
sembolik bir bağlantı oluşturarak sunucu bloğunu
sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Değişikliklerin etkili olması için Nginx yapılandırmasını yeniden yükleyin:
sudo systemctl reload nginx
Certbot komut dosyasını webroot eklentisiyle çalıştırın ve SSL sertifika dosyalarını edinin:
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, certbot aşağıdaki mesajı yazdırı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-04-23. 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" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Artık sertifika dosyalarımız var, etki alanı sunucusu bloğunu aşağıdaki gibi düzenleyin:
/etc/nginx/sites-available/example.com.conf
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 alan adının
non www
sürümünü
non www
sürüme yönlendiriyoruz.
Değişikliklerin etkili olması için Nginx hizmetini yeniden yükleyin:
SSL sertifikası otomatik yenileme
Şifreleme sertifikaları 90 gün geçerlidir. Sertifikalar süresi dolmadan otomatik olarak yenilemek için, certbot paketi günde iki kez çalışacak ve süresi dolmadan 30 gün önce herhangi bir sertifikayı otomatik olarak yenileyecek bir cronjob oluşturur.
Sertifika yenilendikten sonra certbot webroot eklentisini kullandığımızdan, nginx hizmetini de yeniden yüklememiz gerekiyor. Bunu yapmak için
/etc/cron.d/certbot
dosyasına
--renew-hook "systemctl reload nginx"
dosyasını aşağıdaki gibi
/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"
Yenileme işlemini test etmek için certbot -
--dry-run
anahtarını kullanın:
sudo certbot renew --dry-run
Herhangi bir hata yoksa, yenileme işleminin başarılı olduğu anlamına gelir.
Sonuç
Bu eğiticide, etki alanınız için SSL sertifikaları almak üzere certbot Let's Encrypt istemcisini kullandınız. Ayrıca kod çoğaltmasını önlemek 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 ubuntu certbot ssl şifreleyelimCentos 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
Debian 9'u şifreleyelim ile güvenli nginx
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.
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







