让我们encryptionSSL证书文件未find错误,但仍然工作

我正在运行让我们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 configtestopenssl

多谢你们!

经过几个不眠之夜,我终于得到了它的工作。 (矫枉过正的声明)我们都知道这是权限,但究竟在哪里检查。

我一直在使用/ 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)