【问题标题】:Access permissions for SSL certificates acquired with Let's encrypt使用 Let's encrypt 获得的 SSL 证书的访问权限
【发布时间】:2021-12-22 16:24:00
【问题描述】:

我得到了SSL certificatesLet's encrypt 并建立了HTTPS communicationdocker-compose's nginx container。 可以连接成功,但是担心文件夹的访问权限问题。

环境为amazon linux 2,Let's encrypt获得的SSL证书存放在/etc/letsencrypt/live/www.example.com/。 这里the live folder的访问权限如下。

drwx------ 3 root root 47 Nov 9 02:12 live

所以,ec2-user 用户似乎无法访问它。 为了使用 SSL 证书,我将 pem 文件复制到带有root privileges 的相应文件夹中,并且能够成功连接,但这是正确的方法吗?

这一次,我将 pem 文件复制到/home/ec2-user/ssl,如下所示。

drwxrwxr-x 2 ec2-user ec2-user    93 Nov  9 05:32 ssl
[ec2-user@ip-***-***-***-*** ssl]$ ls -la
total 24
drwxrwxr-x 2 ec2-user ec2-user   93 Nov  9 05:32 .
drwx------ 7 ec2-user ec2-user  163 Nov  9 05:31 ..
-rw-r--r-- 1 root     root     1854 Nov  9 03:14 cert.pem
-rw-r--r-- 1 root     root     3749 Nov  9 03:14 chain.pem
-rw-r--r-- 1 root     root     5603 Nov  9 05:32 fullchain.pem
-rw------- 1 root     root     1708 Nov  9 03:14 privkey.pem
-rw-r--r-- 1 ec2-user ec2-user  692 Nov  9 03:14 README

顺便说一句,当我访问我从中复制文件的文件/etc/letsencrypt/live/www.example.com/ 并执行docker-compose up -d 时,出现以下错误。 可能是访问权限的错误。

[emerg] 1#1: cannot load certificate "/etc/letsencrypt/live/www.example.com/fullchain.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/www.example.com/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)

自述文件说不要移动


docker-compose.yml -> nginx 卷

volumes:
...
- /etc/letsencrypt/live/www.example.com:/etc/nginx/certs #error
# - /home/ec2-user/ssl:/etc/nginx/certs #ok
...

default.conf

server {
server_name www.example.com;
listen 443 ssl;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
...
}

【问题讨论】:

    标签: nginx ssl https docker-compose lets-encrypt


    【解决方案1】:

    我解决了这个问题。

    /etc/letsencrypt/live/www.example.com/ 中的 pem 文件是符号链接。 所以我应该安装在/etc/letsencrypt/

    真正的pem文件在/etc/letsencrypt/archive/www.example.com/


    docker-compose.yml -> nginx 卷

    volumes:
    ...
    - /etc/letsencrypt:/etc/letsencrypt
    ...
    

    default.conf

    server {
    server_name www.example.com;
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/www.example.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.net/privkey.pem;
    ...
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-20
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 2022-06-13
      • 2015-03-15
      相关资源
      最近更新 更多