Apache : SSLCertificateKeyFile : 파일이 없거나 비어 있습니다


32

에 SSL을 구성하고 Apache 2있습니다. 내 시스템은 Ubuntu Server 10.04 LTS입니다. 내 호스트 구성에서 SSL과 관련된 다음 설정이 있습니다.

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

(측면 참고 : .insecure파일이 암호로 보호되어 있지 않기 때문에 키 파일에 사용 하고 있으며 안전하지 않은 키 파일임을 분명히 알고 싶습니다)

따라서 아파치를 다시 시작하면 다음 메시지가 나타납니다.

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.

그러나 파일이 있으며 비어 있지 않습니다 (실제로 개인 키가 포함되어 있음).

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/

www-data와 ssl-cert라는 두 그룹을 사용하여 소유권을 변경하려고했습니다. 우분투에서 어느 것이 올바른지 잘 모르겠습니다. 기본적으로 우분투는 ssl-cert를 사용하지만 아파치 프로세스는 사용자 www-data로 실행됩니다. 사용자 루트로 시작되지만 일부는 www-data로 변경됩니다. 포인트, 그리고 인증서를 언제 읽었는지 잘 모르겠습니다.

그러나 어쨌든 그룹 소유자를 변경해도 상황이 개선되지 않았습니다. 내 질문은 :

  1. 이 작업을 수행하기 위해 다른 무엇을 시도 할 수 있습니까?
  2. 키 파일이 유효한 키 파일인지 어떻게 확인합니까?
  3. 키 파일과 인증서 ( /etc/ssl/certs/portal.selfsigned.crt)가 함께 작동 하는지 어떻게 확인할 수 있습니까?

Apache가 잘못된 오류 메시지를 표시한다고 생각하고 오류를 정확하게 지적하고 싶습니다.


안녕하세요,이 질문에 답변 된 것으로 표시 할 수 있습니까?

2
내가 service apache2 restart대신 실행의 기본 실수 에서이 오류 메시지를 받았다는 것을 지적해야합니다 **sudo** service apache2 restart... 자체주의 사항 :sudo make me a sandwich fool
icc97

다음 기사가 매우 유용합니다. 이 스레드로 시스템을 설정할 수 없습니다. digitalocean.com/community/tutorials/…
Léo Léopold Hertz 준영

답변:


36

오류를 발견했습니다. 인증서를 설정하기 위해 스크립트를 사용하고 있기 때문에 수행 한 단계 중 하나는 apache2ctl configtest입니다. 아파치 다시 시작이 아니라이 명령에서 오류가 발생하여 오해의 소지가있었습니다. apache2ctl 명령을 일반 사용자로 실행 했으므로 키 파일에 액세스 할 수 없으므로 오류 메시지가 표시됩니다.

Facit : 모든 아파치 명령이 sudo와 함께 실행되는지 확인하십시오. 심지어 구문 검증 ( apache2ctl)을위한 명령도 키에 액세스해야하기 때문입니다.


8

나는 또한 메시지를 받는다

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

동안 /path/to/file존재를 잘 작성 권한이 단지의 SELinux 때문에이 켜져 있고이 파일은 아파치 사용자에 대한 unaccessable했다.

다음과 같이 보입니다 :

$ 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

이 문제를 해결하려면 sudo restorecon -Rv /etc/pki/tls/certs/문제 파일의 SELinux 속성을 복구합니다.


그것은 해당 서버에서 생성되지 않았지만 다른 소스로부터 업로드 된 인증서에 도움이되었습니다
tymik

2
sudo: restorecon: command not found
Francisco Corrales Morales

@FranciscoCorralesMorales restoreconpolicycoreutils패키지 의 일부입니다 . 또한 SELinux가 전혀 없습니까?
AntonioK

6

나는 이것을했고 CentOS 5.7에서 나를 도왔다.

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

1

비슷한 메시지를 받았습니다.

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

내 문제는 일반적인 큰 따옴표 ascii 34 대신 "오른쪽 따옴표"ascii 148을 사용하는 텍스트 편집기였습니다. 유닉스 타입 편집기 (예 : TextWrangler)를 사용하여 올바른 인용문을 작성하고 문제를 해결했습니다.


0

권한이 잘못되었지만 답변에 따르면 문제의 원인은 아닙니다.

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

/ etc / ssl / private는 보통 데비안 기반 시스템에서 ssl-cert 그룹에 속합니다.

방금 0710 파마를 발견하고 그것이 무엇을 사용할 수 있는지 궁금합니다.


당신은 아마 맞습니다, 적어도 0750이어야합니다. 나는 다른 것들을 시도해 왔으며, 내가 게시 한 상태는 아마도 가장 정확한 것이 아닐 것입니다. 루트로 apache2ctl을 실행하면 확실히 내 문제가 해결되었습니다.
dangonfast

1
0710은 괜찮습니다. 액세스하려면 파일 이름을 알아야합니다.
ypnos
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.