Разрешения на доступ к SSL-сертификатам, полученным с помощью Let’s encrypt

#nginx #ssl #https #docker-compose #lets-encrypt

Вопрос:

Я сошелся SSL certificates Let's encrypt и утвердился HTTPS communication вместе docker-compose's nginx container . Мне удалось успешно подключиться, но я беспокоился о разрешениях доступа к папке.

Среда есть amazon linux 2 , и в ней хранятся SSL-сертификаты, полученные с помощью Let’s encrypt /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)
 

Читатель сказал НЕ ДВИГАТЬСЯ.


докер-составить.yml -> тома nginx

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

по умолчанию.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;
...
}
 

Ответ №1:

Я решил эту проблему.

Файлы pem в /etc/letsencrypt/live/www.example.com/ были символическими ссылками. Так что мне следовало бы сесть на /etc/letsencrypt/ коня .

Настоящие файлы pem находятся внутри /etc/letsencrypt/archive/www.example.com/ .


докер-составить.yml -> тома nginx

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

по умолчанию.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;
...
}