Android

Ubuntu 18.04 ile şifrelenelim

2 месяца с Ubuntu 18.04 LTS - так ли она хороша?

2 месяца с Ubuntu 18.04 LTS - так ли она хороша?

İçindekiler:

Anonim

Ş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 bugün tüm büyük tarayıcılar tarafından güvenilmektedir.

Bu eğitimde, Ubuntu 18.04'teki certbot aracını kullanarak Apache'nizi Let's Encrypt ile nasıl güvenceye alacağınız hakkında 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 alan adı. example.com kullanacağız. Alan adınız için bir apache sanal ana bilgisayarıyla Apache yüklediniz.

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 tam özellikli ve kullanımı kolay bir araçtır. Certbot paketi, varsayılan Ubuntu 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

Etki alanı için bir SSL sertifikası almak için, ${webroot-path}/.well-known/acme-challenge dizininde istenen etki alanı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:

/etc/apache2/conf-available/letsencrypt.conf

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 /etc/apache2/conf-available/ssl-params.conf

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

Ardından, aşağıdaki komutları çalıştırarak SSL yapılandırma dosyalarını etkinleştirin:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Sitelerinizi daha hızlı ve daha sağlam hale getirecek HTTP / 2 modülünü etkinleştirin:

sudo a2enmod

Değişikliklerin etkili olması için Apache yapılandırmasını yeniden yükleyin:

sudo systemctl reload apache2

Şimdi, Certbot aracını webroot eklentisiyle çalıştırabilir ve SSL sertifika dosyalarını aşağıdaki gibi yazabiliriz:

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-10-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" - 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:

/etc/apache2/sites-available/example.com.conf

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

Artık web sitenizi https:// kullanarak açabilirsiniz ve yeşil bir kilit simgesi görürsünüz.

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 herhangi bir sertifikayı otomatik olarak yeniler.

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 :

/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ı kullanabilirsiniz:

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ını indirmek ü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 ubuntu hadi certbot ssl şifrelemek

Bu yazı, ubuntu-18-04 serisinin nasıl monte edileceğini gösteren lambaların bir parçasıdır.

Bu serideki diğer gönderiler:

• Ubuntu 18.04 Üzerinde Apache Nasıl Kurulur • Ubuntu 18.04 Üzerinde Apache Sanal Ana Bilgisayarlar Nasıl Kurulur • Ubuntu 18.04'te Şifreleyelim ile Apache Güvenli • Ubuntu 18.04'te MySQL Kurulumu • Ubuntu 18.04 Üzerinde PHP Kurulumu