systemd hizmeti proxy’ye erişiyor ama CA dosyasına erişemiyor
Proxy sertifika ayarı yalnızca etkileşimli kabukta çalışıyorsa hizmet kullanıcısının dosya erişimini ve systemd dosya sistemi kısıtlamalarını kontrol edin.
Onaylı CA paketini kurdunuz ve istek terminalde çalışıyor. Hizmet hâlâ sertifika yükleme hatası bildiriyor. Proxy IP’sini değiştirmeden önce o sürecin aynı dosyayı açabildiğini kontrol edin.
Hizmet başka bir Unix kullanıcısıyla çalışabilir, farklı dizinde başlayabilir veya kısıtlı dosya sistemi görebilir. Oturumunuz için geçerli yol, hizmet için otomatik olarak geçerli değildir.
Mutlak yolla başlayın
Gerçek istemcide yapılandırılan yolu kontrol edin. Örneğin curl’da --cacert hedef CA paketini seçer; HTTPS proxy’nin ayrı proxy CA seçenekleri vardır. Diğer istemciler kendi yapılandırma anahtarlarını veya ortam değişkenlerini kullanır.
Hem dosyayı hem ona giden dizinleri inceleyin:
namei -l /home/alex/certs/approved-ca.pem
systemctl show example.service -p User -p Group -p ProtectHome -p RootDirectory
Bunlar tanı örnekleridir; dosyayı herkesin yazabileceği hâle getirme talimatı değildir. Dizin geçiş izinleri de son dosyanın okuma izni kadar önemlidir.
Sorun yalnızca izinlerden ibaret olmayabilir
ProtectHome=yes ile systemd standart ev dizini konumlarını hizmete erişilmez yapar. Sertifika dosyasının kipini değiştirmek ad alanı kısıtlamasını kaldırmaz. Yapılandırılmış kök dizin de hizmet içindeki mutlak yolun neye işaret ettiğini değiştirebilir.
Uygulamaya ayrılmış /etc altı bir dizin gibi uygun hizmet yapılandırma konumu kullanın ve yalnızca gerekli okumayı verin. İstemcinin CA yolunu güncelleyin. İlk kopya kişisel ev dizininizdeydi diye ilgisiz dosya sistemi kısıtlamalarını kaldırmayın.
İlk yararlı hatayı okuyun
«CA dosyası yüklenemiyor» ile «sertifika zincirine güvenilmiyor» farklı hatalardır. İlki istemci herhangi bir şeyi doğrulamadan önce oluşabilir. İkincisi okunabilir paketin yanlış otoriteyi içerdiğini veya yanlış TLS bağlantısına uygulandığını gösterebilir.
Erişimi düzelttikten sonra hizmetin bağlamından yeniden test edin. Başarılı terminal komutu yararlı karşılaştırmadır ama hizmetin hangi dosyaları gördüğünü veya istemcisinin hangi güven ayarını kullandığını kanıtlamaz.