CentOS 8'de Yerel Kendinden İmzalı SSL Sertifikası Nasıl Oluşturulur


SSL (Güvenli Yuva Katmanı) ve geliştirilmiş sürümü TLS (Aktarım Soket Katmanı), güvenlik protokolleridir Bir istemcinin web tarayıcısından bir web sunucusuna gönderilen web trafiğinin güvenliğini sağlamak için kullanılır.

SSL sertifikası, istemcinin tarayıcısı ile web sunucusu arasında güvenli bir kanal oluşturan dijital bir sertifikadır. Bunu yaparken, kredi kartı verileri, oturum açma kimlik bilgileri ve diğer son derece özel bilgiler gibi hassas ve gizli veriler şifrelenir ve bilgisayar korsanlarının bilgilerinizi gizlice dinlemesi ve çalması önlenir.

Kendinden İmzalı SSL Sertifikası Nedir?

Kendinden imzalı bir SSL sertifikası, bir Sertifika Yetkilisi (CA) tarafından imzalanan ve güvenilen diğer SSL sertifikalarından farklı olarak, bir CA tarafından imzalanan bir sertifikadır. ona sahip olan bir birey.

Bir tane oluşturmak tamamen ücretsizdir ve yerel olarak barındırılan web sunucunuzu şifrelemenin ucuz bir yoludur. Ancak, aşağıdaki nedenlerden dolayı üretim ortamlarında kendinden imzalı bir SSL sertifikasının kullanılması kesinlikle önerilmez:

  1. Bir Sertifika Yetkilisi tarafından imzalanmadığından, kendinden imzalı bir SSL sertifikası, web tarayıcılarında, kullanıcıları devam etmeye karar vermeleri durumunda karşılaşabilecekleri potansiyel risk konusunda uyaran uyarılar oluşturur. Bu uyarılar istenmeyen bir durumdur ve kullanıcıları web sitenizi ziyaret etmekten caydırır ve potansiyel olarak web trafiğinde düşüşe neden olur. Bu uyarılara geçici bir çözüm olarak kuruluşlar genellikle çalışanlarını uyarıları görmezden gelip devam etmeye teşvik eder. Bu, diğer çevrimiçi sitelerdeki bu uyarıları görmezden gelmeye karar verebilecek ve potansiyel olarak kimlik avı sitelerinin kurbanı olabilecek kullanıcılar arasında tehlikeli bir alışkanlığa yol açabilir.
  2. Kendinden imzalı sertifikalar, düşük seviyeli şifreleme teknolojileri ve karmaları uyguladıklarından düşük güvenlik seviyesine sahiptir. Bu nedenle güvenlik düzeyi standart güvenlik politikalarıyla aynı düzeyde olmayabilir.
  3. Ayrıca Ortak Anahtar Altyapısı (PKI) işlevleri için destek yoktur.

Bununla birlikte, TLS/SSL şifrelemesi gerektiren yerel bir makinede hizmet ve uygulamaları test etmek için kendinden imzalı bir SSL sertifikasının kullanılması kötü bir fikir değildir.

Bu kılavuzda, CentOS 8 sunucu sistemindeki Apache localhost web sunucusuna yerel kendinden imzalı bir SSL sertifikasının nasıl kurulacağını öğreneceksiniz.

Önkoşullar:

Başlamadan önce aşağıdaki temel gereksinimlere sahip olduğunuzdan emin olun:

  1. CentOS 8 sunucusunun bir örneği.
  2. Sunucuda kurulu Apache web sunucusu
  3. /etc/hosts dosyasında zaten yapılandırılmış ve tanımlanmış bir ana bilgisayar adı. Bu kılavuzda sunucumuz için tecmint.local ana bilgisayar adını kullanacağız.

Adım 1: Mod_SSL'yi CentOS'a yükleme

1. Başlamak için Apache web sunucusunun kurulu ve çalışır durumda olduğunu doğrulamanız gerekir.

sudo systemctl status httpd

İşte beklenen çıktı.

Web sunucusu çalışmıyorsa, önyükleme sırasında komutu kullanarak başlatabilir ve etkinleştirebilirsiniz.

sudo systemctl start httpd
sudo systemctl enable httpd

Daha sonra Apache'nin çalışır durumda olup olmadığını doğrulayabilirsiniz.

2. Yerel kendinden imzalı SSL sertifikasının kurulumunu ve kurulumunu etkinleştirmek için mod_ssl paketi gereklidir.

sudo dnf install mod_ssl

Kurulduktan sonra çalıştırarak kurulumunu doğrulayabilirsiniz.

sudo rpm -q mod_ssl

Ayrıca OpenSSL paketinin kurulu olduğundan emin olun (OpenSSL, CentOS 8'de varsayılan olarak kurulu olarak gelir).

sudo rpm -q openssl 

Adım 2: Apache için Yerel Kendinden İmzalı bir SSL Sertifikası Oluşturun

3. Apache web sunucusu ve tüm ön koşullar kontrol altındayken, şifreleme anahtarlarının saklanacağı bir dizin oluşturmanız gerekir.

Bu örnekte /etc/ssl/private konumunda bir dizin oluşturduk.

sudo mkdir -p /etc/ssl/private

Şimdi şu komutu kullanarak yerel SSL sertifika anahtarını ve dosyasını oluşturun:

sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout tecmint.local.key -out tecmint.local.crt

Komuttaki bazı seçeneklerin gerçekte ne anlama geldiğine bir göz atalım:

  • req -x509 – Bu, x509 Sertifika İmzalama İsteğini (CSR) kullandığımızı gösterir.
  • -nodes – Bu seçenek, OpenSSL'e, bir parola kullanarak SSL sertifikasını şifrelemeyi atlaması talimatını verir. Buradaki fikir, Apache'nin herhangi bir kullanıcı müdahalesi olmadan dosyayı okuyabilmesine olanak sağlamaktır; bu, bir parola sağlandığında mümkün olmayacaktır.
  • -newkey rsa:2048 – Bu, aynı anda yeni bir anahtar ve yeni bir sertifika oluşturmak istediğimizi gösterir. Rsa:2048 kısmı, 2048 bitlik bir RSA anahtarı oluşturmak istediğimizi ima eder.
  • -keyout – Bu seçenek, oluşturulan özel anahtar dosyasının oluşturulduktan sonra nerede saklanacağını belirtir.
  • -out – Bu seçenek, oluşturulan SSL sertifikasının nereye yerleştirileceğini belirtir.

Adım 3: Apache'ye Yerel Kendinden İmzalı SSL Sertifikasını yükleyin

4. SSL sertifika dosyasını oluşturduktan sonra artık Apache web sunucusunun ayarlarını kullanarak sertifikayı yükleme zamanı geldi. /etc/httpd/conf.d/ssl.conf yapılandırma dosyasını açın ve düzenleyin.

sudo vi /etc/httpd/conf.d/ssl.conf

Sanal ana bilgisayar etiketleri arasında aşağıdaki satırların bulunduğundan emin olun.

<VirtualHost *:443>
    ServerAdmin [email 
    ServerName www.tecmint.local
    ServerAlias tecmint.local
 
    DocumentRoot /var/www/html
 
    SSLEngine on
    SSLCertificateFile /etc/ssl/private/tecmint.local.crt
    SSLCertificateKeyFile /etc/ssl/private/tecmint.local.key
</VirtualHost>

Dosyayı kaydedip çıkın. Değişikliklerin etkili olması için şu komutu kullanarak Apache'yi yeniden başlatın:

sudo systemctl restart httpd

5. Harici kullanıcıların sunucunuza erişmesi için, gösterildiği gibi güvenlik duvarı üzerinden 443 bağlantı noktasını açmanız gerekir.

sudo firewall-cmd --add-port=443 --zone=public --permanent
sudo firewall-cmd --reload

Adım 3:Apache'de Yerel Kendinden İmzalı SSL Sertifikasını Test Etme

Tüm yapılandırmalar yerindeyken, tarayıcınızı çalıştırın ve https protokolünü kullanarak sunucunun IP adresini veya alan adını kullanarak sunucunuzun adresine göz atın.

Testi kolaylaştırmak için HTTP protokolünü Apache web sunucusundaki HTTPS'ye yönlendirmeyi düşünebilirsiniz. Bu, etki alanına düz HTTP ile göz attığınızda otomatik olarak HTTPS protokolüne yönlendirileceği şekildedir.

Sunucunuzun etki alanına veya IP'sine göz atın

https://domain_name/

Bağlantının gösterildiği gibi güvenli olmadığını bildiren bir uyarı alacaksınız. Bu, bir tarayıcıdan diğerine değişecektir. Tahmin edebileceğiniz gibi bu uyarı, SSL sertifikasının Sertifika Yetkilisi tarafından imzalanmamasından kaynaklanıyor ve tarayıcı bunu kaydederek sertifikaya güvenilemeyeceğini bildiriyor.

Web sitenize devam etmek için yukarıda gösterildiği gibi 'Gelişmiş' sekmesini tıklayın:

Daha sonra istisnayı tarayıcıya ekleyin.

Son olarak, tarayıcınızı yeniden yükleyin ve artık sunucuya erişebildiğinizi gözlemleyin; ancak URL çubuğunda, SSL sertifikasının kendinden imzalı olması ve sunucu tarafından imzalanmaması nedeniyle sitenin tam olarak güvenli olmadığını belirten bir uyarı olacaktır. Sertifika yetkilisi.

Artık devam edebileceğinizi ve CentOS 8'deki Apache localhost web sunucusunda kendinden imzalı bir SSL sertifikası oluşturup yükleyebileceğinizi umuyoruz.