Tarayıcılar ve arama motorları HTTPS bekler, Let's Encrypt ise sertifikaları ücretsiz verir. AlmaLinux 9 çalışan bir VPS Linux Infrawire üzerinde Certbot sertifikayı alabilir, Apache yapılandırmasını düzenleyebilir ve sertifikayı kendisi yenileyebilir. Aynı adımlar Rocky Linux 9 için de geçerlidir.
📋 Ön koşullar
- root veya sudo erişimli bir AlmaLinux 9 VPS (IP ve parola müşteri alanınızda).
- A kaydı (ve IPv6 için AAAA)
VPS_IPadresine işaret eden bir alan adı,example.com. Önce DNS yayılımını bekleyin. - Siteyi 80 numaralı portta HTTP ile sunan Apache (httpd).
1. Apache'yi kurma ve güvenlik duvarını açma
Apache kurulu değilse kurun ve başlatın. Ardından firewalld'de HTTP ve HTTPS'i açın; Let's Encrypt doğrulaması için 80 numaralı port gereklidir.
Bashdnf install -y httpd systemctl enable --now httpd firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload firewall-cmd --list-services
2. Alan adınız için sanal konak oluşturma
Certbot alan adınızla eşleşen bir ServerName arar, bu yüzden ayrı bir sanal konak oluşturun.
Bashmkdir -p /var/www/example.com/public_html echo "Hello" > /var/www/example.com/public_html/index.html
/etc/httpd/conf.d/example.com.conf dosyasını oluşturun:
Apache1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5</VirtualHost>
Sözdizimini kontrol edip yeniden yükleyin:
Bashapachectl configtest systemctl reload httpd
3. Certbot ve mod_ssl kurulumu
Certbot EPEL deposundan gelir. mod_ssl, Apache TLS modülünü ve httpd'nin 443 numaralı portu dinleyebilmesi için gereken varsayılan sertifikayı sağlar.
Bashdnf install -y epel-release dnf install -y certbot python3-certbot-apache mod_ssl
4. Sertifikayı isteme
Certbot'u Apache eklentisiyle çalıştırın. Alan adını HTTP üzerinden doğrular, yeni bir *-le-ssl.conf sanal konağı yazar ve HTTP'den HTTPS'e yönlendirmeyi ekleyebilir.
Bashcertbot --apache -d example.com -d www.example.com
Gerçek bir e-posta adresi girin (süre sonu uyarıları için kullanılır), şartları kabul edin ve sorulduğunda yönlendirme seçeneğini seçin. -d ile verilen her ad bu sunucuya çözülmelidir, aksi hâlde doğrulama başarısız olur.
SELinux enforcing modundaysa (varsayılan), standart bir kurulum için özel bir şey gerekmez. Bir hatayı aşmak için SELinux'u kapatmayın.
5. Otomatik yenilemeyi kontrol etme
Let's Encrypt sertifikaları 90 gün geçerlidir. AlmaLinux 9'da paket, günde iki kez çalışan ve yalnızca süresi yaklaşan sertifikaları yenileyen bir systemd zamanlayıcısı kurar.
Bashsystemctl list-timers | grep certbot systemctl status certbot-renew.timer
Zamanlayıcı listede yoksa etkinleştirin:
Bashsystemctl enable --now certbot-renew.timer
Gerçek sertifikaya dokunmadan yenilemeyi simüle edin:
Bashcertbot renew --dry-run
Son satır, simüle edilen tüm yenilemelerin başarılı olduğunu söylemelidir. Gerçek bir yenilemeden sonra Apache otomatik olarak yeniden yüklenir.
Doğrulama
Bashcertbot certificates curl -I https://example.com curl -I http://example.com
İlk komut alan adlarını ve bitiş tarihini listeler. HTTPS isteği 200 döndürmeli, HTTP isteği ise HTTPS adresine 301 ile yanıt vermelidir. Tarayıcıda kilit simgesi, Let's Encrypt tarafından verilmiş geçerli bir sertifika göstermelidir. Tüm zinciri görmek için openssl s_client -connect example.com:443 -servername example.com çalıştırabilirsiniz.
Sorun giderme
- Doğrulama sırasında sınama başarısız oldu veya zaman aşımı: DNS henüz sunucuya işaret etmiyor ya da 80 numaralı port engelli.
dig +short example.com,firewall-cmd --list-servicesve VPS'in önündeki olası güvenlik duvarlarını kontrol edin. - Certbot eşleşen bir sanal konak bulamıyor:
/etc/httpd/conf.d/içindekiServerNameveyaServerAlias, verdiğiniz alan adıyla uyuşmuyor. Düzeltin,apachectl configtestçalıştırın ve tekrar deneyin. Ayrıcacertbot certonly --apachekullanıp yolları kendiniz yapılandırabilirsiniz. - Çok fazla sertifika veya başarısız doğrulama (hız sınırı): Let's Encrypt tekrarlanan denemeleri sınırlar. Önce
certbot --apache --dry-runile test edin ve yeniden denemeden önce bekleyin. - Kurulumdan sonra site 443 üzerinden erişilemiyor: HTTPS firewalld'de açık değil ya da httpd yeniden yüklenmedi.
firewall-cmd --permanent --add-service=https,firewall-cmd --reloadvesystemctl restart httpdkomutlarını çalıştırın.
🔐 AlmaLinux 9 üzerindeki Apache siteniz artık HTTPS sunuyor ve sertifikasını kendisi yeniliyor.