Pardus Üzerinde MEB Sertifikası Nasıl Kurulur?

Standart Pardus masaüstü sürümünü okullardaki Fatih ağına bağlamak isteyen öğretmen ve öğrenciler için çok ihtiyaç duyulan bir rehber.


Milli Eğitim Bakanlığı (MEB) ağına (Fatih Projesi) bağlı okullarda internete sorunsuz erişebilmek ve HTTPS (Güvenli Bağlantı) hatalarıyla karşılaşmamak için cihazınızda MEB güvenlik sertifikasının yüklü olması gerekir.

MEB ile TÜBİTAK ortak çalışmasıyla geliştirilen Pardus ETAP (Etkileşimli Tahta Arayüzü Projesi) ve Pardus Eğitim sürümlerinde bu sertifika sisteme entegre olarak, kurulu halde gelir. Ancak kişisel bilgisayarınızda genel/standart bir Pardus masaüstü sürümü kullanıyorsanız, MEB sertifikasını el ile yüklemeniz gerekmektedir.

Pardus sistemlerinde bu işlem oldukça kolaydır. Sertifika, Pardus'un resmi depolarında özel bir paket olarak sunulmaktadır. Gelin bu kurulumu nasıl yapacağımıza yakından bakalım.

Yöntem 1: Uçbirim (Terminal) Üzerinden Otomatik Kurulum (Önerilen)

Pardus depolarında MEB sertifikası eba-certs isimli bir paket olarak bulunur. En hızlı ve güvenilir yöntem, paket yöneticisini kullanarak bu sertifikayı doğrudan depodan çekmektir.

  1. Uygulamalar menüsünden veya Ctrl + Alt + T kısayolunu kullanarak Uçbirim'i (Terminal) açın.

  2. Öncelikle sisteminizdeki paket listesini güncellemek için aşağıdaki komutu girin ve Enter'a basın (Sizden yönetici parolanız istenecektir, parolayı yazarken ekranda karakter görünmez, yazıp Enter'a basın):

    Bash:
    sudo apt update
    
  3. Ardından sertifika paketini kurmak için şu komutu çalıştırın:

    Bash:
    sudo apt install eba-certs
    

Bu işlem tamamlandığında MEB sertifikası sisteminize başarıyla yüklenmiş ve gerekli yerlere kaydedilmiş olacaktır.

Yöntem 2: Depo Adresinden Manuel Paketi İndirerek Kurulum

Eğer komut satırı üzerinden otomatik kurulumda bir sorun yaşarsanız veya paketi indirip arşivlemek isterseniz, Pardus depolarından .deb uzantılı kurulum dosyasını doğrudan indirebilirsiniz.

Sertifika paketlerinin tutulduğu resmi depo dizini şudur:

https://depo.pardus.org.tr/pardus/pool/contrib/e/eba-certs/

  1. Web tarayıcınız üzerinden yukarıdaki adrese gidin.

  2. Karşınıza çıkan listeden eba-certs_..._amd64.deb isimli dosyaya (genellikle en güncel tarihli olanına) tıklayarak bilgisayarınıza indirin.

  3. İndirdiğiniz dosyanın bulunduğu klasöre (genellikle İndirilenler klasörü) gidin.

  4. İndirdiğiniz .deb uzantılı dosyaya çift tıklayarak Pardus Paket Kurucu (GDebi vb.) arayüzü ile grafiksel olarak kurulumu tamamlayabilirsiniz.

(Alternatif olarak indirdiğiniz dizinde Uçbirim açarak sudo dpkg -i eba-certs*.deb komutuyla da kurabilirsiniz.)

Not: Şuan en güncel sürüm

https://depo.pardus.org.tr/pardus/pool/contrib/e/eba-certs/eba-certs_1.0.2_amd64.deb

Kurulumu Test Etme

Kurulum adımlarını tamamladıktan sonra, okuldaki MEB internet ağına bağlanın ve web tarayıcınızı (Firefox, Chrome vb.) açın. Önceden "Bağlantınız gizli değil" veya "Güvenlik Sertifikası Hatası" veren https:// uzantılı sitelere (örneğin Google, EBA, e-Okul) sorunsuz bir şekilde erişebiliyorsanız kurulumunuz başarıyla tamamlanmış demektir.


Pardus Sunucu (Server) sürümünde genel olarak grafik arayüz (GUI) bulunmadığı için, işlemleri tamamen komut satırı üzerinden (SSH bağlantısıyla veya doğrudan sunucu terminalinden) gerçekleştiriyoruz.

Sunucu ortamında sertifikayı kurmak, aslında masaüstü sürümündeki terminal yöntemiyle temel olarak aynıdır. 

Yöntem 1: APT Paket Yöneticisi ile Kurulum (En Hızlı Yöntem)

Pardus Sunucu kurulumunuzda resmi depolar varsayılan olarak eklidir. Bu nedenle doğrudan apt komutunu kullanarak depodan çekebilirsiniz:

  1. Sunucunuza bağlantı sağladıktan sonra paket listelerini güncelleyin:

    Bash:
    sudo apt update
    
  2. Sertifika paketini kurun:

    Bash:
    sudo apt install eba-certs
    

Bu komut, sertifikayı sunucunuza indirir ve işletim sisteminin kök sertifika deposuna (/etc/ssl/certs/ dizinine) otomatik olarak ekleyip günceller.

Yöntem 2: Wget ile Manuel İndirip Kurma (Alternatif)

Eğer sunucunuzda paket yöneticisi ile ilgili anlık bir depo sorunu yaşarsanız, wget aracı ile sertifika paketini doğrudan belirttiğiniz depo adresinden sunucunuza indirebilir ve kurabilirsiniz.

  1. İlgili dizindeki .deb paketini sunucuya indirin:

    Bash:
    wget https://depo.pardus.org.tr/pardus/pool/contrib/e/eba-certs/eba-certs_1.0.2_amd64.deb
    

    (Not: Depodaki sürüm numarası zamanla değişebileceği için komutu çalıştırmadan önce 1.0.2 kısmının depodaki güncel dosya adıyla uyuştuğundan emin olun.)

  2. İndirdiğiniz paketi dpkg komutu ile kurun:

    Bash:
    sudo dpkg -i eba-certs_*.deb
    

Sunucuda Kurulumu Test Etme

Masaüstü sürümünde bir web tarayıcı açarak test etmiştik ancak sunucuda arayüz olmadığı için bu testi curl komutu ile yapabiliriz.

Aşağıdaki komutu terminale yapıştırın:

Bash:
curl -I https://www.eba.gov.tr

Eğer ekranda HTTP/2 200 veya HTTP/1.1 301/302 gibi normal HTTP durum kodları görüyorsanız ve "SSL certificate problem" gibi bir hata almıyorsanız, MEB sertifikası sunucunuza başarıyla kurulmuş ve çalışıyor demektir.


Pardus sunucunuza MEB sertifikasını sistem seviyesinde kurmak ilk ve en önemli adımdır. Ancak iş sunucu üzerinde çalışan web uygulamalarına geldiğinde, bazı programlama dilleri ve kütüphaneler sistem sertifikalarını varsayılan olarak görmezden gelip kendi sertifika depolarını kullanmaya çalışır.

Özellikle sunucunuzda çalışan bir Django projesi dışarıdaki bir API'ye (örneğin bir hava durumu servisine veya bir ödeme geçidine) istek attığında, MEB ağı (Fatih projesi) araya gireceği için uygulamanız SSL: CERTIFICATE_VERIFY_FAILED hatası verecektir.


Pardus Sunucuda Django ve Web Servisleri İçin MEB Sertifikası Ayarları

Pardus sunucunuza eba-certs paketini başarıyla kurdunuz ve sunucunuzun kendisi artık MEB ağı üzerinden internete güvenle çıkabiliyor. Peki ya sunucu üzerinde yayınladığınız web projeleriniz?

Python tabanlı web çerçeveleri (özellikle Django) ve bazı web sunucuları (Nginx), dış bağlantılar yaparken kendi güvenlik kurallarını işletirler. Sistemdeki MEB sertifikasını bu servislere özel olarak tanıtmazsanız, projeleriniz dış dünyadan veri çekerken SSL hatalarıyla karşılaşır. Gelin bu sorunu nasıl çözeceğimize bakalım.

1. Django (Python) Projelerinde MEB Sertifikasını Tanıtma

Django projelerinde dışarıdan veri çekmek için genellikle popüler requests kütüphanesi kullanılır. Ancak requests kütüphanesi, Pardus'un sistem sertifika deposunu (/etc/ssl/certs/) kullanmak yerine kendi içindeki certifi paketine güvenir. Bu yüzden MEB ağındayken dışarıya atılan istekler başarısız olur.

Bu sorunu çözmenin iki zarif yolu vardır:

Yöntem A: Çevre Değişkeni (Environment Variable) Kullanmak (Önerilen)

Projenizin her yerinde kod değiştirmek yerine, Python'a sistem sertifikalarını nerede bulacağını söyleyebilirsiniz. Django projenizin settings.py dosyasının en üstüne şu satırları ekleyin:

Python
import os

# requests kütüphanesini Pardus'un kök sertifika deposuna yönlendiriyoruz
os.environ['REQUESTS_CA_BUNDLE'] = '/etc/ssl/certs/ca-certificates.crt'

Böylece projenizin neresinden requests.get() çağrısı yaparsanız yapın, uygulama MEB sertifikasını tanıyacaktır.

Yöntem B: İstek Bazında Belirtmek

Eğer sadece belirli bir fonksiyonda dışarıya istek atıyorsanız, sertifika yolunu doğrudan fonksiyona parametre olarak verebilirsiniz:

Python
import requests

url = "https://api.ornek-servis.com/veri"
sertifika_yolu = "/etc/ssl/certs/ca-certificates.crt"

response = requests.get(url, verify=sertifika_yolu)

2. Nginx Web Sunucusunda Sertifika Ayarları

Nginx'i Django projenizin önünde bir "Ters Vekil Sunucu" (Reverse Proxy) olarak kullanıyorsanız, dışarıdan gelen kullanıcıları karşılamak için kendi domaininize ait (örneğin Let's Encrypt ile alınmış) bir SSL sertifikası kullanırsınız. Bu noktada MEB sertifikasına ihtiyacınız yoktur.

Ancak, Nginx yapılandırmanızda proxy_pass yönergesi ile arka plandaki başka bir HTTPS servise istek yönlendiriyorsanız (upstream), Nginx'in de MEB sertifikasını tanıması gerekir.

Bunun için Nginx konfigürasyon dosyanızdaki (genellikle /etc/nginx/sites-available/projeniz içinde) ilgili location bloğuna şu satırı eklemelisiniz:

Nginx:
location /api/ {
    proxy_pass https://disaridaki-servis.com;
    
    # Nginx'e Pardus sistem sertifikalarını kullanmasını söylüyoruz
    proxy_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
    proxy_ssl_verify on;
    proxy_ssl_verify_depth 2;
}

Değişikliği yaptıktan sonra yapılandırmayı test edip Nginx'i yeniden başlatmayı unutmayın:

Bash:
sudo nginx -t
sudo systemctl reload nginx

Özet

Pardus sunucu (Server) üzerinde geliştirme yaparken en sık karşılaşılan tuzaklardan biri, işletim sistemine kurulan sertifikanın yazılım dilleri tarafından otomatik olarak algılanacağını varsaymaktır. Yukarıdaki küçük ayarlamalarla, uygulamalarınızı Fatih ağının güvenlik politikalarıyla tam uyumlu hale getirebilir ve kesintisiz çalışmasını sağlayabilirsiniz.



Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu