jar*_*vis 13 ssl ssl-certificate apache-2.4 lets-encrypt
我正在运行Let's Encrypt 的SSL 证书。我已经在运行 Apache 的 Ubuntu 机器上安装了它们。设置工作正常,我可以启动网站,看到绿色挂锁,甚至在 SSL Labs 上获得了 A+。
问题是,当我执行apachectl configtest 时,服务器会返回一个找不到文件的错误:
SSLCertificateFile: file '/etc/letsencrypt/live/www.example.com/fullchain.pem' not exist or is empty.
Run Code Online (Sandbox Code Playgroud)
但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
Run Code Online (Sandbox Code Playgroud)
不起作用并返回以下错误:
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
Run Code Online (Sandbox Code Playgroud)
关于为什么我在apachectl configtest和openssl上遇到错误的任何想法?
谢谢你们!
小智 14
在我的情况下,文件和权限不是问题。我试图使用apachectl restart或测试配置(apachectl -t或apachectl configtest)重新启动服务器。运行命令的用户 (me) 根本没有访问证书的适当权限。我只需要在命令sudo前面加上前缀就可以以 root 身份运行它们!没有更多错误,配置测试返回“语法正常”,我可以重新启动服务器。(好吧,我有点尴尬,我花了很长时间才弄明白那个……)
经过几个不眠之夜,我终于开始工作了。(矫枉过正的说法)我们都知道这是权限,但究竟在哪里需要检查。
我继续使用/ect/letsencrypt/live及其下的目录和文件。我不断地将权限从原始更改为 0755 和 0777。我没有立即看到的是/etc/letsencrypt/live 是从/etc/letsencrypt/archive创建的链接,它具有0700权限。这就是它无法读取文件的原因。将/etc/letsencrypt/archive的权限更改为0755 后,apachectl configtest已经响应为Syntax OK.
尽管最初的问题已解决,但我会将其转回给Let's Encrypt,因为这都是证书的自动安装。这样的事情不应该发生在“自动”中。但是我的设置可能与权限问题有关,因为我使用非 root 用户安装了它(但我做了 sudo)。
希望这可以帮助某人。
| 归档时间: |
|
| 查看次数: |
13989 次 |
| 最近记录: |