【发布时间】:2021-12-22 16:24:00
【问题描述】:
我得到了SSL certificates 和Let's encrypt 并建立了HTTPS communication 和docker-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