Android

Centos 7'yi şifreleyelim.

Установка и настройка CentOS в VirtualBox

Установка и настройка CentOS в VirtualBox

İçindekiler:

Anonim

Let's Encrypt, Internet Security Research Group (ISRG) tarafından geliştirilen ücretsiz, otomatik ve açık bir sertifika yetkilisidir. 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 öğreticide, Apache'yi web sunucusu olarak çalıştıran bir CentOS 7 sunucusuna ücretsiz Let's Encrypt SSL sertifikası yüklemek için gerekli adımları ele alacağız. Let's Encrypt sertifikalarını almak ve yenilemek için certbot yardımcı programını kullanacağız.

Ön şartlar

Bu eğiticiye devam etmeden önce aşağıdaki önkoşulları karşıladığınızdan emin olun:

  • Genel sunucu IP'nizi işaret eden bir alan adınız olsun. example.com kullanacağız. Apache sunucunuzda yüklü ve çalışıyor. Etki alanınız için Apache sanal ana makinesine sahip olun. 80 ve 443 portları güvenlik duvarınızda açıktır.

SSL şifreli bir web sunucusu için gereken aşağıdaki paketleri yükleyin:

yum install mod_ssl openssl

Certbot'u yükle

Certbot, Let's Encrypt'ten SSL sertifikaları alma ve sunucunuzda HTTPS'yi otomatik olarak etkinleştirme işlemini basitleştiren bir araçtır.

Certbot paketi EPEL'den kurulum için uygundur. EPEL deposu sisteminizde yüklü değilse, aşağıdaki komutu kullanarak kurabilirsiniz:

sudo yum install epel-release

EPEL deposu etkinleştirildikten sonra, certbot paketini şunu yazarak yükleyin:

sudo yum 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 Boyutu 4096 bite kadar değiştirebilirsiniz, ancak bu durumda üretim, sistem entropisine bağlı olarak 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 .

Dizini oluşturmak ve Apache sunucusu için yazılabilir yapmak için aşağıdaki komutları çalıştırın:

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp apache /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/httpd/conf.d/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/httpd/conf.d/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

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.

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

sudo systemctl reload

Ş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-12-07. 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:

CentOS 7, SSLOpenSSLConfCmd yönergesini içermeyen Apache 2.4.6 sürümüyle birlikte SSLOpenSSLConfCmd . Bu yönerge yalnızca Apache 2.4.8'de kullanılabilir ve Diffie – Hellman anahtar değişimi (DH) gibi OpenSSL parametrelerinin yapılandırılması için kullanılır.

Let's Encrypt SSL sertifikasını ve oluşturulan DH dosyasını kullanarak yeni bir birleşik dosya oluşturmamız gerekecek. Bunu yapmak için şunu yazın:

cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem

Artık her şey hazır olduğuna göre, etki alanı sanal ana bilgisayar yapılandırmanızı aşağıdaki gibi düzenleyin:

/etc/httpd/conf.d/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.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 başlatın:

sudo systemctl restart

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ın süreleri dolmadan otomatik olarak yenilenmesi için günde iki kez çalışacak bir cronjob oluşturacağız ve herhangi bir sertifikayı sona erme tarihinden 30 gün önce otomatik olarak yenileyeceğiz.

Sertifikayı yenileyecek yeni bir cronjob oluşturmak, DH anahtarını içeren yeni bir birleştirilmiş dosya oluşturmak ve apache'yi yeniden başlatmak için crontab komutunu çalıştırın:

sudo crontab -e

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

Dosyayı kaydedip kapatın.

Yenileme işlemini test etmek için, certbot komutunu ve ardından --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 centos hadi certbot ssl şifreleyelim

Bu yazı, CentOS 7 serisine LAMP Yığını Yükle'nin bir parçasıdır.

Bu serideki diğer gönderiler:

• CentOS 7'de Apache Kurulumu • CentOS 7'ye MySQL Kurulumu • CentOS 7'de Apache Sanal Sunucu Kurulumu • CentOS 7'de Şifreleyelim ile Apache Güvencesi