Doküman

Ubuntu/Debian’da Sertifika Yetkilisi nasıl yapılandırılır

Sertifika Yetkilisi, istemciler ve sunucular arasındaki güvenli bağlantıların sağlanmasında ve doğrulanmasında hayati bir rol oynar.  Uzak bir sunucuya (örneğin bir web sitesine) bağlanmaya çalıştığınızda, sisteminiz doğru yere bağlandığını nasıl biliyor?  Sonuçta, herhangi bir hileli sistemin, gerçekte olmadığı halde kendisinin bir web sitesi olduğunu iddia etmesini engelleyen hiçbir şey yoktur.  İstemci sistemimizin amaçlanan sunucuya bağlandığımızı doğrulamasına yardımcı olarak sertifika yetkilisi sunucuları burada devreye giriyor.  Bu özel örnek bir web sitesi bağlantısı bağlamındadır ve HTTPS protokolünü de içerir, ancak sertifika yetkilileri VPN gibi diğer bağlantı türlerinin kimliğini doğrulamak için de kullanılabilir.
Evrensel olarak güvenilen bir dizi sertifika yetkilisinin (kök CA’lar) yanı sıra kök CA’lar tarafından güvenilir olduğunu kanıtlamış çok sayıda alt CA da vardır.  Ancak kendi Sertifika Yetkilinizi oluşturmanız da mümkündür.  Sunucularınız ve onlara bağlanan istemciler, sertifika verme ve kimlik doğrulama için aynı CA’yı kullanma konusunda anlaştıkları sürece, tüm CA sürecini kendi bünyemizde halledebiliriz.  Bu eğitimde Debian Linux veya Ubuntu sistemini Sertifika Yetkilisine nasıl dönüştüreceğimizi göreceğiz.

Ubuntu/Debian’da Sertifika Yetkilisi Kurulumu



BİLİYOR MUSUNUZ?
Sertifika yetkilisi olmadan, kötü amaçlı sunucuların istediğimiz sunucu gibi görünmesi ve onlara bağlandığımızda hassas bilgiler elde etmesi kolaydır.  İşletmelerin veya diğer ağ altyapılarının kendi sertifika yetkililerini oluşturması yaygın bir süreç haline geldi; çünkü bunu yapmak, resmi sertifika yetkilisine ödeme yapmaktan daha ucuz ve özelleştirilmesinde çok daha esnektir.  Sertifika yetkilisi, kullanıcıların bir VPN’e, güvenli bir web sitesine (HTTPS) güvenilir bir şekilde bağlanmasına, e-postaları kriptografik olarak imzalamasına ve çok daha fazlasına olanak sağlayabilir.

Aşağıdaki talimatlarda Debian veya Ubuntu Linux üzerinde bir sistemi Sertifika Yetkilisi olarak kullanabilmek için Easy-RSA kurulum işlemini gerçekleştireceğiz.

  1. Bir komut satırı terminali açıp easy-rsa yazılım paketini apt ile yükleyerek başlayın:
    $ sudo apt install easy-rsa
    

    Easy-RSA, bir sunucunun kimliğini doğrulamak için CA’ya ihtiyaç duyan gelen istemci bağlantılarından gelen istekleri imzalayacak özel bir anahtar oluşturmak için kullandığımız araç olacaktır.

  2. Şimdi Easy-RSA’yı yapılandırmaya başlayalım.  Bunu Ortak Anahtar Altyapımız (PKI) için bir dizin oluşturarak yapacağız.  Buna istediğiniz adı verebilirsiniz, ancak örnek olması açısından bunu basit tutacağız:
    $ mkdir ~/easy-rsa
    
  3. Daha sonra, tüm Easy-RSA dosyalarını yeni PKI dizinimize kopyalayabilir veya bunlara sembolik bir bağlantı oluşturabiliriz.  Sembolik bağlantı oluşturmanın avantajı, gelecekte Easy-RSA paketine yönelik güncellemeler olması durumunda PKI dizinimizi değiştirmemize gerek kalmamasıdır.  Bağlantıyı oluşturmak için aşağıdaki komutu yürütün:
    $ ln -s /usr/share/easy-rsa/* ~/easy-rsa/
    $ cd ~/easy-rsa
    
  4. ~/easy-rsa dizinine girdikten sonra, onu bir PKI dizini olarak başlatan betiği çalıştırıyoruz.
    $ ./easyrsa init-pki
    
    Initializing the PKI directory of our CA
    CA’mızın PKI dizininin başlatılması
  5. Daha sonra konfigürasyonumuzda bazı değişkenleri ayarlamamız gerekiyor.  Bu, PKI dizini ~/easy-rsa içinde vars adlı bir dosya oluşturularak yapılabilir.
    $ nano vars
    

    İçine aşağıdaki içerik yapıştırılabilir;  kendi bilgilerinizi yansıtacak şekilde uyarlamanız yeterlidir:



     

    set_var EASYRSA_REQ_COUNTRY    "US"
    set_var EASYRSA_REQ_PROVINCE   "LA"
    set_var EASYRSA_REQ_CITY       "Los Angeles"
    set_var EASYRSA_REQ_ORG        "LinuxConfig.org"
    set_var EASYRSA_REQ_EMAIL      "[email protected]"
    set_var EASYRSA_REQ_OU         "Linux Tutorials"
    set_var EASYRSA_ALGO           "ec"
    set_var EASYRSA_DIGEST         "sha512"
    

    Dosyayı istediğiniz gibi düzenledikten sonra değişiklikleri kaydedin ve çıkın.

  6. Daha sonra build-ca betiğini çalıştıracağız.  Bu, genel ve özel anahtar çifti oluşturan Sertifika Yetkilisini oluşturacaktır.
    $ ./easyrsa build-ca
    

    Anahtar çiftini koruyan bir parola girmeniz istenecektir.  Ardından, ana bilgisayar adı veya kullanıcı adı gibi CA sunucunuzu temsil eden bir ad girin.  Aşağıdaki ekran görüntüsünde linuxconfig-CA kullanıyoruz:

    Building the certificate authority
    Sertifika yetkilisini oluşturma
  7. Sunucunuz artık Sertifika Yetkilisi olarak görev yapmaya hazır.  CA’nızla etkileşim kurması gereken tüm istemcilerin, bizimle birlikte takip ediyorsanız, ~/easy-rsa/pki dizininde saklanması gereken ca.crt dosyasının bir kopyasına ihtiyacı olacaktır.
    $ cat ~/easy-rsa/pki/ca.crt
    

    Dosyayı nasıl dağıtmayı seçeceğiniz size bağlıdır, ancak bağlanan tüm istemcilerin dosyanın bir kopyasına ihtiyacı olacaktır.

    UYARICa.key dosyanızı güvende tuttuğunuzdan emin olun.  Bu dosya ~/easy-rsa/pki/private/ca.key konumunda saklanır ve sistemden asla ayrılmamalıdır.  Bu dosyanın güvenliği ihlal edilirse CA’nın amacı kullanılamaz hale gelecektir.

Sertifika Yetkilisini İçe Aktarma

İstemci sistemlerinde, sertifika yetkilisi sunucusundan ca.crt dosyasını (yukarıda oluşturulan) almanız gerekecektir.  Bu dosyanın tanımlanması kolaydır çünkü şu satırla başlayacaktır:
----BEGIN CERTIFICATE----.

Sertifika yetkilisini Debian ve Ubuntu’ya eklemek için ca.crt dosyasını aşağıdaki dizine kopyalayacağız:

$ sudo cp ca.crt /usr/local/share/ca-certificates

Daha sonra aşağıdaki komutu çalıştırarak değişikliklerin geçerli olması için sertifika listesini güncellememiz gerekiyor:

$ sudo update-ca-certificates

Hepsi bu kadar.  Artık sertifika yetkilisi tarafından kimliği doğrulanan özel sunuculara bağlanabilmeniz gerekir.

Bazı uygulamaların CA’nın manuel olarak içe aktarılmasına ihtiyaç duyabileceğini ve /usr/local/share/ca-certificates dizinini kendileri incelemeyeceğini unutmayın.

CSR Nasıl İmzalanır?

CSR (Sertifika İmzalama İsteği) .req dosyası biçiminde gelir.  Bu, kimliğini doğrulayabilecek bir sertifika almak için sertifika yetkilisini kullanmak isteyen bir istemci veya sunucu tarafından oluşturulur.  Diyelim ki sertifika imzalamak istediğimiz bir sunucudan .req dosyası aldık.  Süreç şu şekilde olacaktır:

  1. CSR’yi imzalamak için easyrsa betiğini çalıştıracağız.  Import-req seçeneğini ve ardından dosyanın adını ve sunucuyu tanımlamak için kullanmak istediğiniz ortak adı belirtin:
    $ ./easyrsa import-req example-server.req example-server
    
  2. Daha sonra request-req seçeneği ile isteği imzalıyoruz.  Ayrıca istemci, sunucu veya ca olabilecek istek türünü de belirtmemiz gerekir.  Bu örnekte bir sunucu için CSR’yi imzalıyoruz:
    $ ./easyrsa sign-req server example-server
    

Nihai sonuç bir example-server.crt dosyasıdır.  Bu dosyanın, ilk bölümdeki ca.crt dosyasıyla birlikte sunucuya verilmesi gerekecektir.  Daha sonra bu sunucu, ortak bir sertifika yetkilisi sunucusundan imzalanmış bir sertifikaya sahip olduğundan, bağlanan tüm istemcilere güvenilebileceğini gösterebilir.



 

Yazının orijinalini buradan okuyabilirsiniz.