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.
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.
Uygulamalar menüsünden veya
Ctrl + Alt + Tkısayolunu kullanarak Uçbirim'i (Terminal) açın.Ö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ıpEnter'a basın):Bash:sudo apt updateArdı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/
Web tarayıcınız üzerinden yukarıdaki adrese gidin.
Karşınıza çıkan listeden
eba-certs_..._amd64.debisimli dosyaya (genellikle en güncel tarihli olanına) tıklayarak bilgisayarınıza indirin.İndirdiğiniz dosyanın bulunduğu klasöre (genellikle İndirilenler klasörü) gidin.
İndirdiğiniz
.debuzantı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:
Sunucunuza bağlantı sağladıktan sonra paket listelerini güncelleyin:
Bash:sudo apt updateSertifika 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.
İlgili dizindeki
.debpaketini 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.2kısmının depodaki güncel dosya adıyla uyuştuğundan emin olun.)İndirdiğiniz paketi
dpkgkomutu 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:
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:
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:
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:
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:
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