docs: права /etc/ssl/sac — root:ssl-cert, www-data в группе
This commit is contained in:
@@ -207,7 +207,14 @@ nginx ожидает **два PEM-файла**:
|
|||||||
| `/etc/ssl/sac/privkey.pem` | Закрытый ключ |
|
| `/etc/ssl/sac/privkey.pem` | Закрытый ключ |
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo mkdir -p /etc/ssl/sac && sudo chmod 750 /etc/ssl/sac
|
# каталог: группа ssl-cert, чтобы www-data мог зайти в каталог (chmod 750)
|
||||||
|
sudo mkdir -p /etc/ssl/sac
|
||||||
|
sudo chown root:ssl-cert /etc/ssl/sac
|
||||||
|
sudo chmod 750 /etc/ssl/sac
|
||||||
|
|
||||||
|
# nginx читает ключ через группу ssl-cert (на чистой Ubuntu в группе часто только postgres)
|
||||||
|
sudo groupadd -f ssl-cert
|
||||||
|
sudo usermod -aG ssl-cert www-data
|
||||||
```
|
```
|
||||||
|
|
||||||
Скопировать с рабочего ПК (пример):
|
Скопировать с рабочего ПК (пример):
|
||||||
@@ -222,9 +229,20 @@ sudo chmod 644 /etc/ssl/sac/fullchain.pem
|
|||||||
sudo chmod 640 /etc/ssl/sac/privkey.pem
|
sudo chmod 640 /etc/ssl/sac/privkey.pem
|
||||||
sudo chown root:root /etc/ssl/sac/fullchain.pem
|
sudo chown root:root /etc/ssl/sac/fullchain.pem
|
||||||
sudo chown root:ssl-cert /etc/ssl/sac/privkey.pem
|
sudo chown root:ssl-cert /etc/ssl/sac/privkey.pem
|
||||||
sudo -u www-data test -r /etc/ssl/sac/privkey.pem && echo OK
|
# каталог снова root:ssl-cert (если меняли владельца при mv)
|
||||||
|
sudo chown root:ssl-cert /etc/ssl/sac
|
||||||
|
sudo chmod 750 /etc/ssl/sac
|
||||||
|
|
||||||
|
# worker nginx должен подхватить группу www-data
|
||||||
|
sudo systemctl restart nginx
|
||||||
|
|
||||||
|
sudo -u www-data test -x /etc/ssl/sac && echo dir OK || echo dir FAIL
|
||||||
|
sudo -u www-data test -r /etc/ssl/sac/fullchain.pem && echo fullchain OK || echo fullchain FAIL
|
||||||
|
sudo -u www-data test -r /etc/ssl/sac/privkey.pem && echo key OK || echo key FAIL
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Если `test -r privkey.pem` молчит: каталог был `root:root` при `750` — у `www-data` нет права `x` на `/etc/ssl/sac/`; либо `www-data` не в `ssl-cert`. См. [ssl-certificate.md §3](ssl-certificate.md#3-каталог-и-права-на-сервере).
|
||||||
|
|
||||||
Если PFX с другого Linux — `scp` на SAC: [ssl-certificate.md §4.3](ssl-certificate.md#43-забрать-файл-с-другого-linux-сервера-scp).
|
Если PFX с другого Linux — `scp` на SAC: [ssl-certificate.md §4.3](ssl-certificate.md#43-забрать-файл-с-другого-linux-сервера-scp).
|
||||||
Распаковка PFX на Ubuntu 24.04: **`openssl pkcs12 -legacy`** — [§4.4](ssl-certificate.md#44-распаковка-pfx--p12-на-сервере-ubuntu-2404).
|
Распаковка PFX на Ubuntu 24.04: **`openssl pkcs12 -legacy`** — [§4.4](ssl-certificate.md#44-распаковка-pfx--p12-на-сервере-ubuntu-2404).
|
||||||
|
|
||||||
|
|||||||
+22
-5
@@ -40,9 +40,15 @@ nginx **не** понимает напрямую: `.pfx`, `.p12`, `.der` без
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo mkdir -p /etc/ssl/sac
|
sudo mkdir -p /etc/ssl/sac
|
||||||
|
sudo chown root:ssl-cert /etc/ssl/sac
|
||||||
sudo chmod 750 /etc/ssl/sac
|
sudo chmod 750 /etc/ssl/sac
|
||||||
|
|
||||||
|
sudo groupadd -f ssl-cert
|
||||||
|
sudo usermod -aG ssl-cert www-data
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Каталог **`root:ssl-cert` `750`**, не `root:root`: иначе у `www-data` нет права `x` (зайти в каталог), даже если ключ `640` и `root:ssl-cert`.
|
||||||
|
|
||||||
После копирования файлов:
|
После копирования файлов:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -50,15 +56,21 @@ sudo chmod 644 /etc/ssl/sac/fullchain.pem
|
|||||||
sudo chmod 640 /etc/ssl/sac/privkey.pem
|
sudo chmod 640 /etc/ssl/sac/privkey.pem
|
||||||
sudo chown root:root /etc/ssl/sac/fullchain.pem
|
sudo chown root:root /etc/ssl/sac/fullchain.pem
|
||||||
sudo chown root:ssl-cert /etc/ssl/sac/privkey.pem
|
sudo chown root:ssl-cert /etc/ssl/sac/privkey.pem
|
||||||
|
sudo chown root:ssl-cert /etc/ssl/sac
|
||||||
|
sudo chmod 750 /etc/ssl/sac
|
||||||
|
|
||||||
|
sudo systemctl restart nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
Группа `ssl-cert` на Ubuntu нужна, чтобы **nginx** (пользователь `www-data`) мог читать ключ.
|
Группа `ssl-cert` нужна, чтобы **nginx** (`www-data`) читал ключ и обходил каталог. На Ubuntu в `ssl-cert` по умолчанию может быть только `postgres` — добавьте `www-data` (`usermod` выше).
|
||||||
|
|
||||||
Проверка, что nginx видит файлы:
|
Проверка:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo -u www-data test -r /etc/ssl/sac/fullchain.pem && echo "fullchain OK"
|
id www-data # в groups должна быть ssl-cert
|
||||||
sudo -u www-data test -r /etc/ssl/sac/privkey.pem && echo "key OK"
|
sudo -u www-data test -x /etc/ssl/sac && echo "dir OK" || echo "dir FAIL"
|
||||||
|
sudo -u www-data test -r /etc/ssl/sac/fullchain.pem && echo "fullchain OK" || echo "fullchain FAIL"
|
||||||
|
sudo -u www-data test -r /etc/ssl/sac/privkey.pem && echo "key OK" || echo "key FAIL"
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -84,6 +96,8 @@ sudo chmod 644 /etc/ssl/sac/fullchain.pem
|
|||||||
sudo chmod 640 /etc/ssl/sac/privkey.pem
|
sudo chmod 640 /etc/ssl/sac/privkey.pem
|
||||||
sudo chown root:root /etc/ssl/sac/fullchain.pem
|
sudo chown root:root /etc/ssl/sac/fullchain.pem
|
||||||
sudo chown root:ssl-cert /etc/ssl/sac/privkey.pem
|
sudo chown root:ssl-cert /etc/ssl/sac/privkey.pem
|
||||||
|
sudo chown root:ssl-cert /etc/ssl/sac
|
||||||
|
sudo chmod 750 /etc/ssl/sac
|
||||||
sudo rm -f /tmp/fullchain.pem /tmp/privkey.pem
|
sudo rm -f /tmp/fullchain.pem /tmp/privkey.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -164,6 +178,8 @@ sudo chmod 644 /etc/ssl/sac/fullchain.pem
|
|||||||
sudo chmod 640 /etc/ssl/sac/privkey.pem
|
sudo chmod 640 /etc/ssl/sac/privkey.pem
|
||||||
sudo chown root:root /etc/ssl/sac/fullchain.pem
|
sudo chown root:root /etc/ssl/sac/fullchain.pem
|
||||||
sudo chown root:ssl-cert /etc/ssl/sac/privkey.pem
|
sudo chown root:ssl-cert /etc/ssl/sac/privkey.pem
|
||||||
|
sudo chown root:ssl-cert /etc/ssl/sac
|
||||||
|
sudo chmod 750 /etc/ssl/sac
|
||||||
|
|
||||||
# очистка временных файлов
|
# очистка временных файлов
|
||||||
sudo shred -u server.crt ca-chain.crt privkey.pem 2>/dev/null
|
sudo shred -u server.crt ca-chain.crt privkey.pem 2>/dev/null
|
||||||
@@ -291,6 +307,7 @@ SAC_PUBLIC_URL=https://sac.kalinamall.ru
|
|||||||
| `mac verify failure` | Неверный пароль PFX |
|
| `mac verify failure` | Неверный пароль PFX |
|
||||||
| `nginx: PEM_read_bio_X509_AUX() failed` | Неверный PEM, проверьте `fullchain.pem` текстом, нет ли `.der` без конвертации |
|
| `nginx: PEM_read_bio_X509_AUX() failed` | Неверный PEM, проверьте `fullchain.pem` текстом, нет ли `.der` без конвертации |
|
||||||
| `key values mismatch` | Ключ не от этой пары сертификатов |
|
| `key values mismatch` | Ключ не от этой пары сертификатов |
|
||||||
| `permission denied` на key | `chown root:ssl-cert`, `chmod 640`; `sudo -u www-data test -r ...` |
|
| `test -r privkey.pem` без вывода / key FAIL | Каталог `chown root:ssl-cert`, `750`; `usermod -aG ssl-cert www-data`; `systemctl restart nginx` |
|
||||||
|
| `permission denied` на key | То же + `chmod 640` на ключ; `test -x /etc/ssl/sac` |
|
||||||
| Браузер/агент не доверяет | Неполная цепочка — добавьте intermediate в fullchain |
|
| Браузер/агент не доверяет | Неполная цепочка — добавьте intermediate в fullchain |
|
||||||
| `certificate has expired` | Продлить у УЦ, заменить файлы |
|
| `certificate has expired` | Продлить у УЦ, заменить файлы |
|
||||||
|
|||||||
Reference in New Issue
Block a user