Android

Centos 8'i şifreleyelim.

Настройка Gnome в CentOS 8

Настройка Gnome в CentOS 8

İçindekiler:

Anonim

Let's Encrypt, ücretsiz SSL sertifikaları sağlayan Internet Security Research Group (ISRG) tarafından geliştirilen ücretsiz, otomatik ve açık bir sertifika yetkilisidir.

Let's Encrypt tarafından verilen sertifikalara tüm büyük tarayıcılar tarafından güvenilir ve yayın tarihinden itibaren 90 gün geçerlidir.

Bu eğitimde Apache'yi web sunucusu olarak çalıştıran CentOS 8'e ücretsiz Let's Encrypt SSL sertifikasının nasıl kurulacağı açıklanmaktadır. Sertifikaları almak ve yenilemek için certbot aracını kullanacağız.

Ön şartlar

Devam etmeden önce aşağıdaki ön koşulların karşılandığından emin olun:

  • Genel sunucu IP'nizi işaret eden bir alan adınız olsun. example.com kullanacağız. Apache, alan adınız için yapılandırılmış bir sanal ana makine ile sunucunuzda yüklü ve çalışıyor. 80 ve 443 numaralı portlar güvenlik duvarınızda açık.

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

sudo dnf install mod_ssl openssl

Mod_ssl paketi yüklendiğinde, localhost için kendinden imzalı bir anahtar ve sertifika dosyaları oluşturmalıdır. Dosyalar otomatik olarak oluşturulmazsa, openssl komutunu kullanarak oluşturabilirsiniz:

sudo openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes \ -out /etc/pki/tls/certs/localhost.crt \ -keyout /etc/pki/tls/private/localhost.key

Certbot'u yükle

Certbot, Let's Encrypt SSL sertifikalarını sunucunuzdan HTTPS'den alma ve otomatik olarak etkinleştirme sürecini basitleştiren ücretsiz bir komut satırı aracıdır.

Certbot paketi standart CentOS 8 depolarına dahil değildir, ancak satıcının web sitesinden indirilebilir.

Certbot komut dosyasını /usr/local/bin dizinine indirmek için aşağıdaki wget komutunu root veya sudo kullanıcısı olarak çalıştırın:

sudo wget -P /usr/local/bin

İndirme işlemi tamamlandıktan sonra dosyayı yürütülebilir yapın:

sudo chmod +x /usr/local/bin/certbot-auto

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 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.

Kurulumu 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 ve yapılandırmayı daha sürdürülebilir hale getirmek 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 # Requires Apache 2.4.36 & OpenSSL 1.1.1 SSLProtocol -all +TLSv1.3 +TLSv1.2 SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1 # Older versions # 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 pasaj, Cipherli.st tarafından önerilen yongalama makinelerini kullanıyor. OCSP Zımbalama, HTTP Sıkı Aktarım Güvenliği (HSTS), Dh tuşunu etkinleştirir ve güvenlik odaklı birkaç HTTP üstbilgisini zorlar.

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

sudo systemctl reload

Şimdi, webroot eklentisi ile certbot komut dosyasını çalıştırabilir ve SSL sertifika dosyalarını alabilirsiniz:

sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Başarıyla, certbot aşağıdaki mesajı yazdıracaktı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 2020-01-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto 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:

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 Protocols h2 http:/1.1 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/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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 /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/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 HTTPS'yi zorluyor ve www'den www olmayan sürüme yönlendiriyor. Ayrıca, sitelerinizi daha hızlı ve daha sağlam hale getirecek HTTP / 2'yi de etkinleştirir. Yapılandırmayı ihtiyaçlarınıza göre ayarlamak için serbest bırakın.

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

Sertifikayı yenileyecek ve Apache'yi yeniden başlatacak yeni bir cronjob oluşturmak için aşağıdaki komutu çalıştırın:

echo "0 0, 12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto -q renew --renew-hook \"systemctl reload httpd\"" | sudo tee -a /etc/crontab > /dev/null

Yenileme işlemini test etmek için, certbot komutunu ve ardından --dry-run anahtarını kullanın:

sudo /usr/local/bin/certbot-auto renew --dry-run

Herhangi bir hata yoksa, yenileme işleminin başarılı olduğu anlamına gelir.

Sonuç

Bu öğreticide, alanlarınız için SSL sertifikaları almak üzere CentOS'ta Let's Encrypt istemci sertifikasının nasıl kullanılacağı hakkında konuştuk. Ayrıca, Apache'nin sertifikaları kullanmasını ve otomatik sertifika yenilemesi için bir cronjob ayarlamasını nasıl yapacağınızı gösterdiniz.

Certbot komut dosyası hakkında daha fazla bilgi edinmek için Certbot belgelerini ziyaret edin.

apache centos hadi certbot ssl şifreleyelim