Поднимаем Debian сервер для Python/Django — установка и настройка с нуля. Как настроить сервер?
İç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ç
Şifreleyelim, Internet Security Research Group (ISRG) tarafından oluşturulan bir sertifika yetkilisidir. Manuel sertifika oluşturma, doğrulama, kurulum ve yenilemeyi ortadan kaldırmak için tasarlanmış tam otomatik bir işlemle ücretsiz SSL sertifikaları sağlar.
Let's Encrypt tarafından verilen sertifikalar, veriliş tarihinden itibaren 90 gün geçerlidir ve bugün tüm büyük tarayıcılar tarafından güvenilmektedir.
Bu eğitici, Debian 9'daki certbot aracını kullanarak ücretsiz bir Let's Encrypt alma işlemi boyunca size rehberlik edecektir. Ayrıca Apache'nin yeni SSL sertifikasını kullanacak ve HTTP / 2'yi etkinleştirecek şekilde nasıl yapılandırılacağını göstereceğiz.
Ön şartlar
Bu eğiticiye devam etmeden önce aşağıdaki önkoşulları karşıladığınızdan emin olun:
- Sudo ayrıcalıklarına sahip bir kullanıcı olarak oturum açın. Sunucunuzun genel sunucu IP'sini işaret eden bir alan adına sahip olun. Ornek.com'u kullanacağız. Alan adınız için bir apache sanal ana bilgisayarı. Nasıl oluşturacağınızla ilgili ayrıntılar için bu talimatları takip edebilirsiniz.
Certbot'u yükle
Certbot, Let's Encrypt SSL sertifikalarını alma ve yenileme görevlerini 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 aşağıdaki komutları kullanarak certbot paketini yükleyin:
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.
Yeni bir 2048 bit DH parametre kümesi oluşturmak için:
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 Apache sunucusu için yazılabilir yapar.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Kod çoğaltılmasını önlemek için aşağıdaki iki yapılandırma snippet'ini oluşturun:
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Yukarıdaki snippet, Cipherli.st tarafından önerilen yongalayıcıları kullanıyor, OCSP Zımbalama, HTTP Sıkı Aktarım Güvenliği'ni (HSTS) etkinleştiriyor ve güvenlik odaklı birkaç HTTP üstbilgisini zorunlu kılıyor.
Yapılandırma dosyalarını etkinleştirmeden önce, aşağıdakileri yaparak
mod_ssl
ve
mod_headers
etkinleştirildiğinden emin olun:
sudo a2enmod ssl
sudo a2enmod headers
Sitelerinizi daha hızlı ve daha sağlam hale getirecek HTTP / 2 modülünü etkinleştirin:
sudo a2enmod
Aşağıdaki komutları çalıştırarak SSL yapılandırma dosyalarını etkinleştirin:
sudo a2enconf letsencrypt
sudo a2enconf ssl-params
Değişikliklerin etkili olması için Apache yapılandırmasını yeniden yükleyin:
sudo systemctl reload apache2
SSL sertifika dosyalarını edinmek için webroot eklentisiyle Certbot aracını kullanın:
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: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. 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 lose your account credentials, you can recover through e-mails sent to [email protected]. - 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:
Artık sertifika dosyalarına sahip olduğunuza göre, etki alanı sanal ana bilgisayar yapılandırmanızı aşağıdaki gibi düzenleyin:
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
Yukarıdaki yapılandırma ile HTTPS'yi zorluyoruz ve www'den www olmayan sürüme yönlendiriyoruz. Yapılandırmayı ihtiyaçlarınıza göre ayarlamak için serbest bırakın.
Değişikliklerin etkili olması için Apache hizmetini yeniden yükleyin:
sudo systemctl reload apache2
https://
kullanarak web sitenizi açın, yeşil bir kilit simgesi göreceksiniz.
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 ve herhangi bir sertifikayı sona erme tarihinden 30 gün önce otomatik olarak yenileyecek bir cronjob oluşturur.
Sertifika yenilendikten sonra Apache hizmetini de yeniden yüklememiz gerekir.
/etc/cron.d/certbot
dosyasına
--renew-hook "systemctl reload apache2"
/etc/cron.d/certbot
aşağıdaki gibi görünecek şekilde
/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 apache2"
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 öğreticide, alanınız için SSL sertifikaları almak üzere Let's Encrypt istemci sertifikasını kullandınız. Kod çoğaltılmasını önlemek için Apache snippet'leri de oluşturdunuz ve Apache'yi sertifikaları kullanacak şekilde yapılandırdınız. Eğiticinin sonunda, otomatik sertifika yenilemesi için bir cronjob ayarladınız.
apache debian certbot ssl şifreleyelimBu yazı Debian 9 serisine LAMP Stack Nasıl Kurulur?
Bu serideki diğer gönderiler:
• Debian 9 Apache Nasıl Kurulur • Debian 9 PHP Nasıl Kurulur • Debian 9 Apache Sanal Sunucu Nasıl Kurulur • Debian 9 MariaDB Nasıl Kurulur • Debian 9 ŞifreleyelimVerilerinizi Parsellerde Gümüş Anahtarla Güvenli Hale Getirin
Bu yardımcı program ile süper güvenli arşivler oluşturun, bu da yanlış yazılan parolaları önlemeye veya kelime öbeklerini önlemeye yardımcı olur.
İphone'unuzu daha güvenli ve daha güvenli hale getirmek için 5 önemli ipucu
IPhone kullanıcıları, daha güvenli ve daha güvenli bir iPhone için bu önemli güvenlik ipuçlarını kaçırmayın. Şimdi oku ve uygula!
Android'inizi kaspersky ebeveyn kontrolü ile güvenli hale getirin
Kaspersky Ebeveyn Denetimi ile Android'inizi Nasıl Güvenli Kılacağınızı Öğrenin. İnternetteki Bütün Güvensiz Web Sitelerini Engelleyin ve Daha Fazlasını Yapın.