我正在运行让我们encryption的 SSL证书。 我已经将它们安装在运行Apache的Ubuntu机器上。 设置工作正常,我可以启动网站,看到绿色的挂锁,甚至有一个在SSL实验室的A +。
问题是,当我做apachectl configtest服务器将返回一个文件未find错误:
SSLCertificateFile: file '/etc/letsencrypt/live/www.example.com/fullchain.pem' not exist or is empty.
但sudo service apache2 restart
工作得很好。
我在Let's Encrypt Community上运行了这个问题,但问题还没有解决。
sudo cat /etc/letsencrypt/live/www.example.com/fullchain.pem
工作,返回有效的证书详细信息。
sudo x509 -text -noout -in /etc/letsencrypt/live/www.example.com/fullchain.pem
不起作用,并返回下面的错误:
Error opening Certificate /etc/letsencrypt/live/www.example.com/fullchain.pem 139774254929568:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/letsencrypt/live/www.example.com/fullchain.pem.','r') 139774254929568:error:2007402:BIO routines:FILE_CTRL:system lib:bss_file.c:400: ubable to load certificate
任何想法,为什么我得到错误apachectl configtest和openssl ?
多谢你们!
经过几个不眠之夜,我终于得到了它的工作。 (矫枉过正的声明)我们都知道这是权限,但究竟在哪里检查。
我一直在使用/ ect / letsencrypt / live以及其下的目录和文件。 我一直在改变从原来的权限到0755和0777.我没有立即看到/ etc / letsencrypt / live 是从 / etc / letsencrypt / archive 创build的一个链接 ,它有一个0700的权限。 这就是为什么它无法读取文件。 将/ etc / letsencrypt / archive的权限更改为0755后 , apachectl configtest
已经用Syntax OK
了响应。
虽然原来的问题已经解决了,但是我会将其重新提交给Let's Encrypt,因为这是所有证书的自动安装。 这样的事情不应该发生在“汽车”。 但是我的设置可能与权限问题有关,因为我使用非root用户来安装它(但是我做了sudo)。
希望这有助于某人。
证书文件的权限最好保持非常严格。 要允许相应的进程访问证书文件:使用以下命令启动Apache。
sudo service httpd start
或者使用此命令正常重新启动:
sudo service httpd graceful
正如Ian Terle最初所评论的那样 ,更改“live”目录的权限现在解决了这个问题:
sudo chmod -R 0755 /etc/letsencrypt/live
注意:我正在观察与OP相同的错误。
这得到了证实:
Ubuntu 16.04.2 LTS
Apache / 2.4.18(Ubuntu)