Let's Encrypt Kullanarak Raspberry Pi SSL Sertifikaları
Bu yazı, PiMyLifeUp - Raspberry Pi SSL Certificates using Let's Encrypt kaynağından Türkçe'ye çevrilerek hazırlanmıştır.
Bu Raspberry Pi SSL sertifikası projesi, Let's Encrypt Certbot istemcisini Pi'de kurup ayarlama adımlarında size yol gösterecek.

Bu Certbot istemcisi, kullanıcının ya web sunucusunu kullanarak ya da geçici bir sunucu çalıştırarak Let's Encrypt'ten bir SSL sertifikası almasını sağlar.
Let's Encrypt, Raspberry Pi'niz için tamamen ücretsiz olarak güvenli ve sertifikalı bir SSL sertifikası elde etmenin en iyi yoludur.
Raspberry Pi'nizde SSL ayarlamaya başlamadan önce, bir IP Adresinin sertifikalı bir SSL Sertifikasına sahip olamayacağından, IP adresinize zaten kurulu ve yönlendirilmiş bir alan adına sahip olduğunuzdan emin olun.
DNS sağlayıcınız olarak Cloudflare kullanıyorsanız, DNS'in Cloudflare'in proxy'sini atlayacak şekilde ayarlandığından emin olun. Proxy, IP adresinizi gizler, bu da Let's Encrypt aracının Raspberry Pi'nizin IP adresini doğrulayamayacağı ve bir SSL sertifikası oluşturamayacağı anlamına gelir.
Bir SSL Sertifikası almayla ilgili bu eğitim, Raspberry Pi OS Bullseye ve Raspberry Pi 3 üzerinde son olarak test edilmiştir.
LetsEncrypt'i Kurma ve Çalıştırma
1. Raspberry Pi'mizde LetsEncrypt'i ayarlamadan önce, önce her şeyin güncel olduğundan emin olmalıyız.
Bunu aşağıdaki iki komutu çalıştırarak yapabiliriz.
sudo apt update
sudo apt upgrade
2. Şimdi aşağıdaki komutlardan birini çalıştırarak Raspberry Pi'mize gerçek LetsEncrypt yazılımını kurabiliriz.
Bu yazılım parçası "Cerbot" olarak adlandırılır. Apache çalıştırıyorsanız, onun için certbot modülünü kurabilirsiniz, aksi takdirde certbot'un standart sürümünü kurun.
Apache
sudo apt install python3-certbot-apache
Diğer Her Şey
sudo apt install certbot
3. Certbot sonunda kurulduğuna göre, Raspberry Pi'miz için Let's Encrypt'ten bir SSL sertifikası almaya devam edebiliriz. Bunu ele almanın birkaç yolu var.
Apache kullanmıyorsanız, bu adımı atlayabilirsiniz. Apache kullanıyorsanız, bir sertifika almanın en kolay yolu aşağıda gösterilen komutu çalıştırmaktır, bu otomatik olarak sertifikayı alacak ve Apache'nin yapılandırmasına kuracaktır.
Bunu yapmadan önce, önce 80 portu ve 443 portunun port yönlendirmesinin yapıldığından emin olmanız gerekecek. Ayrıca, DNS sağlayıcınız olarak Cloudflare kullanıyorsanız, gerçek IP adresinizi gizlediğinden geçici olarak onu atlamanız gerekecek.
sudo certbot --apache
4. Apache çalıştırmıyorsanız, Let's Encrypt'ten bir sertifika almak için iki farklı yol izleyebiliriz. Certbot yazılımı sayesinde, sunucuyu bağımsız bir python sunucusu kullanarak alabiliriz.
Alternatif olarak, NGINX gibi başka bir web sunucusu çalıştırıyorsanız, sertifikayı almak için onu da kullanabiliriz. Ancak alındıktan sonra sertifikayı manuel olarak ayarlamanız gerekecek.
Başka bir web sunucusu çalıştırmıyorsanız 5a adımına, aksi takdirde 5b adımına gidin.
5a. Bağımsız yerleşik web sunucusunu kullanmak inanılmaz derecede kolaydır, ancak önce 80 portunuzun engellenmediğinden ve yönlendirildiğinden emin olmanız gerekecek. example.com kısmını kullanmayı planladığınız alan adıyla değiştirdiğinizden emin olun.
sudo certbot certonly --standalone -d example.com -d www.example.com
5b. Web root kullanmak, yerleşik web sunucusunu kullanmaktan biraz daha fazla bilgi gerektirir. /var/www/examplein internetten erişilebilen çalışan bir web sitesi dizinine işaret ettiğinden emin olun. Ayrıca, example.com kısmını web siteniz için kullandığınız alan adıyla değiştirdiğinizden emin olun.
sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com
6. Bu komutları çalıştırdıktan sonra, e-posta adresiniz gibi bazı detayları girmeniz istenecektir. Bu detaylar, Let's Encrypt'in sağladığı sertifikaları takip etmesi ve sertifikada herhangi bir sorun ortaya çıkarsa sizinle iletişime geçebilmesi için gereklidir.
Gerekli bilgileri doldurduktan sonra, Let's Encrypt'ten sertifikayı almaya devam edecektir.
Herhangi bir sorunla karşılaşırsanız, IP'nize işaret eden geçerli bir alan adınız olduğundan, 80 portu ve 443 portunun engellenmediğinden emin olun. Son olarak, DNS sağlayıcınız olarak Cloudflare kullanıyorsanız, DNS'in şu anda proxy sunucularını atlayacak şekilde ayarlandığından emin olun.
Certbot istemcisi tarafından alınan sertifikalar aşağıdaki klasörde saklanacaktır. Tabii ki, example.com kısmını kendi alan adınızla değiştirerek.
/etc/letsencrypt/live/example.com/
Bu klasörlerin içinde hem full chain dosyasını (fullchain.pem) hem de sertifikanın private key dosyasını (privkey.pem) bulacaksınız. SSL bağlantınızı güvenli tutan ve onu meşru bir bağlantı olarak tanımlayan şeyler bunlar olduğundan, başkalarının bu dosyalara erişmesine izin vermediğinizden emin olun.
Dosyalar artık başarıyla alındığına göre, onları kullanmanız gereken herhangi bir yazılım parçasını ayarlamaya devam edebilirsiniz. Örneğin, SSL sertifikalarını kullanmak için NGINX'i ayarlamak istiyorsanız, aşağıdaki Raspberry Pi SSL Nginx rehberimizi takip edin.
Yeni SSL Sertifikanızı NGINX ile Kullanma
1. NGINX yapılandırma dosyanızı açarak başlayın. Bunlar genellikle /etc/nginx/ veya /etc/nginx/sites-available/ içinde saklanır.
Yapılandırma dosyanızı bulduktan sonra, favori metin editörünüzü kullanarak onu açın, örneğin benimki nano. Dosyanın içindeyken, aşağıda gösterilene benzer bir metin bloğu arayın.
example.com kısmımızı kullandığınız alan adıyla değiştirdiğinizden emin olun.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /usr/share/nginx/html;
index index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
}
2. Bu kod bloğuna, bazı değişiklikler yapmamız gerekecek. Adımlarımızı takip edin ve aşağıda değişikliği neden yaptığımıza dair açıklamalarımızı okuyun.
Bulun
listen [::]:80 default_server
Altına Ekleyin
listen 443 ssl;
Bu değişiklik, NGINX'e 443 portunu dinlemeye başlamasını söyler. Port 443 önemlidir çünkü HTTPS/SSL trafiğini işleyen porttur ve https:// kullanırken web tarayıcılarının bağlanmaya çalışacağı porttur.
Bulun
server_name example.com;
Altına Ekleyin
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Bu değişiklik, NGINX'e sertifika dosyalarımızı nerede bulacağını söyler. SSL/HTTPS bağlantısını ayarlamak için bunları kullanacaktır.
private key, gerçek bağlantıyı güvenli hale getirir. Bu dosyayı yalnızca sunucunuz okuyup görebilir ve bu dosya güvende tutulmalıdır, aksi takdirde insanlar potansiyel olarak trafiğinizi ele geçirip şifresini çözebilir.
fullchain, sunucuyla HTTPS bağlantısı üzerinden konuşmak için gereken tüm bilgileri içerir. Ayrıca meşru şekilde imzalanmış bir SSL dosyası olduğunu doğrulamak için gereken bilgileri de içerir.
3. Tüm bu değişiklikler yapıldıktan sonra, aşağıda gösterdiğimize benzer bir şeyle karşılaşmalısınız. Tabii ki, example.com kısmını alan adınızla değiştirdiğinizden emin olun.
Yeni veriyi doğru girdiğinizden emin olduktan sonra, dosyayı kaydedip çıkabilir ve ardından yeni yapılandırmayı yüklemesi için NGINX'i yeniden başlatabilirsiniz.
server {
listen 80 default_server;
listen [::]:80 default_server
listen 443 ssl;
root /usr/share/nginx/html;
index index.html index.htm;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
try_files $uri $uri/ =404;
}
}
4. Artık Let's Encrypt ile oluşturduğumuz sertifikayı kullanan NGINX web sunucunuz için tamamen çalışan bir HTTPS bağlantısına sahip olmalısınız.
Sonuç
Umarız artık Let's Encrypt tarafından size sağlanan tamamen doğrulanmış bir SSL sertifikasına sahip olursunuz. Bu eğitimi geniş bir proje yelpazesinde, özellikle sunucu tabanlı Raspberry Pi projelerinde oldukça kullanışlı bulacaksınız.
Umarım bu Raspberry Pi SSL eğitimini yararlı bulmuşsunuzdur, herhangi bir sorununuz veya geri bildiriminiz varsa aşağıya yorum bırakmaktan çekinmeyin.