Apache: SSLCertificateKeyFile: dosya mevcut değil veya boş


33

İçin SSL yapılandırıyorum Apache 2. Benim sistemdir Ubuntu Server 10.04 LTS. Vhost yapılandırmamda SSL ile ilgili aşağıdaki ayarlara sahibim:

SSLEngine On
SSLCertificateKeyFile /etc/ssl/private/server.insecure.key
SSLCertificateFile    /etc/ssl/certs/portal.selfsigned.crt

(Not: .insecureDosya parola korumalı olmadığı için anahtar dosya için kullanıyorum ve güvenli olmayan bir anahtar dosya olduğunu açıkça görmeyi seviyorum)

Böylece, apache'yi yeniden başlattığımda aşağıdaki mesajı alıyorum:

Syntax error on line 39 of /etc/apache2/sites-enabled/500-portal-https:
SSLCertificateKeyFile: file '/etc/ssl/private/server.insecure.key' does not exist or is empty
Error in syntax. Not restarting.

Ancak dosya orada ve boş değil (aslında özel bir anahtar içeriyor):

sudo ls -l /etc/ssl/private/server.insecure.key
-rw-r----- 1 root www-data 887 2012-08-07 15:14 /etc/ssl/private/server.insecure.key
sudo ls -ld /etc/ssl/private/
drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/

Sahipliği değiştirmeyi denedim, iki grup kullanarak www-data ve ssl-cert. Ubuntu'da hangisinin doğru olduğundan emin değilim: varsayılan olarak Ubuntu ssl-cert kullanır, ancak diğer yandan apache işlemleri www-data ile çalışır: kullanıcı root tarafından başlatılır, ancak bazı durumlarda www-data olarak değişir. gelin ve sertifikaların ne zaman okunacağından emin değilim.

Fakat yine de, grup sahibini değiştirmek durumu iyileştirmedi. Benim sorularım:

  1. Bu işe almak için başka ne deneyebilirim?
  2. Anahtar dosyamın geçerli bir anahtar dosya olduğunu nasıl doğrulayabilirim?
  3. Anahtar dosya ve sertifikanın ( /etc/ssl/certs/portal.selfsigned.crt) birlikte çalıştığını nasıl doğrulayabilirim ?

Apache'nin yanıltıcı bir hata mesajı verdiğini düşünüyorum ve hatayı tam olarak belirlemek istiyorum.


Merhaba, bu soruyu cevaplanmış olarak işaretler misiniz?

2
Bu hata mesajını çalıştırmak service apache2 restartyerine temel hatadan **sudo** service apache2 restartsudo make me a sandwich fool
aldığımı

Aşağıdaki makaleyi çok faydalı buluyorum. Bu iş parçacığı ile sistemi kuramadı. digitalocean.com/community/tutorials/…
Léo Léopold Hertz

Yanıtlar:


37

Hatayı buldum. Çünkü sertifikaları ayarlamak için bir komut dosyası kullanıyorum ve gerçekleştirdiğim adımlardan biri apache2ctl configtest. Hata bu komuttan geliyordu ve apache restart'dan değil, bu beni yanıltıcıydı. Apache2ctl komutunu normal kullanıcı olarak çalıştırdığımdan, ana dosyalara ve dolayısıyla hata mesajına erişemiyordu.

Gerçek: Tüm apache komutlarınızın sudo ile çalıştırıldığından emin olun, hatta sadece sözdizimi doğrulaması için tasarlanmış olanlar bile ( apache2ctl), tuşlara erişmeleri gerekir.


8

Mesajı da alıyorum

SSLCertificateKeyFile: file '/path/to/file' does not exist or is empty

/path/to/filevar ve doğru izinlere sahipken , yalnızca SELinux yüzünden açıktı ve bu dosyaya apache kullanıcısı için erişilemiyordu.

Bu gibi görünüyor:

$ sudo ls -laZ /etc/pki/tls/certs/
drwxr-xr-x. root root system_u:object_r:cert_t:s0      .
drwxr-xr-x. root root system_u:object_r:cert_t:s0      ..
-rw-------. root root unconfined_u:object_r:cert_t:s0  this-one-works.crt
-rw-------. root root unconfined_u:object_r:admin_home_t:s0 this-one-is-unaccessable.crt

Bunu düzeltmek için çalıştırıyorum sudo restorecon -Rv /etc/pki/tls/certs/- sorunlu dosya için SELinux özelliğini onaracak.


bu sunucuda yaratılmayan ancak başka bir kaynaktan yüklenen bir sertifika için bana yardımcı oldu
tymik

2
sudo: restorecon: command not found
Francisco Corrales Morales,

@ FranciscoCorralesMorales paketinin restoreconbir parçasıdır policycoreutils. Ayrıca belki SELinux'unuz yok mu?
AntonioK

6

Bunu yaptım ve bana CentOS 5.7’de yardımcı oldu.

server:~ # chcon -t cert_t /etc/pki/tls/private/my.key 
server:~ # ls -laZ /etc/pki/tls/private/

1

Benzer bir mesaj aldım:

SSLCertificateChainFile: file '/opt/bitnami/apache2/conf/DigiCertCA.crt\xe2\x80\x9d' does not exist or is empty

Benim sorunum, kullandığım metin editörü normal bir çift alıntı ascii 34 yerine "doğru alıntı" ascii 148; Doğru alıntı yaparak unix tipi bir editör (örneğin TextWrangler) kullanarak problemi çözdüm.


0

İzinler yanlış, ancak cevabınıza göre sorunun nedeni bu değildi:

drwx--x--- 2 root www-data 4096 2012-08-07 13:02 /etc/ssl/private/

/ etc / ssl / private, genellikle debian tabanlı sistemlerdeki ssl grubuna aittir.

0710 izinlerini farkettim ve ne için kullanılabileceğini merak ettim.


Muhtemelen haklısın, en az 0750 olmalı. Farklı şeyler deniyordum ve gönderdiğim durum muhtemelen en doğru olanı değil. Apache2ctl dosyasını root olarak çalıştırmak problemlerimi çözdü.
dangonfast

1
0710 gayet iyi, erişmek için dosya adını bilmeniz gerekiyor.
ypnos
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.