vault backup: 2026-05-24 15:03:28
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
---
|
||||
status: stable
|
||||
type: lab
|
||||
tags:
|
||||
- admin
|
||||
- network
|
||||
created: 2025-12-17
|
||||
updated: 2026-05-07
|
||||
title: CA И NGINX
|
||||
---
|
||||
|
||||
# CA И NGINX
|
||||
При запросе в локальный центр сертификации Microsoft, он выдает два файла:
|
||||
|
||||
1. certnew.cer - сертификат
|
||||
2. certnew.p7b - цепочка сертификатов
|
||||
|
||||
Для работы в Nginx необходимо их перевернуть в pem-формат.
|
||||
|
||||
Если экспортированы они в base64, то cer уже в нужном формате, а p7b надо разделить на блоки:
|
||||
|
||||
```text
|
||||
openssl pkcs7 -print_certs -in certnew.p7b -out chain.pem
|
||||
```
|
||||
|
||||
И надо объединить их в одну цепочку сертификатов:
|
||||
|
||||
```text
|
||||
cat certnew.cer chain.pem > fullchain.pem
|
||||
```
|
||||
|
||||
Далее в конфигурации Nginx:
|
||||
|
||||
```text
|
||||
...
|
||||
server {
|
||||
ssl_certificate /path/to/fullchain.pem
|
||||
ssl_certificate_key /path/to/server.key
|
||||
}
|
||||
...
|
||||
```
|
||||
|
||||
## Связанные заметки
|
||||
- [[VPN]] — ассиметричное шифрование (открытый/закрытый ключ) из VPN-ноты — это и есть PKI, на котором строится TLS-сертификат от CA
|
||||
- [[Docker Swarm]] — встроенный mTLS между нодами Swarm использует ту же инфраструктуру CA и сертификатов
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
status: seed
|
||||
type: guide
|
||||
tags:
|
||||
- admin
|
||||
- nginx
|
||||
- reverse-proxy
|
||||
- homelab
|
||||
created: 2026-05-18
|
||||
updated: 2026-05-18
|
||||
title: Nginx Proxy Manager под path
|
||||
source: "[[Лайфхак для NPM. Как проксировать не на поддомен а на под путь]]"
|
||||
---
|
||||
|
||||
# Nginx Proxy Manager под path
|
||||
|
||||
Кейс: сервис нужно опубликовать не на отдельном поддомене вида `service.domain.ru`, а в подкаталоге основного домена: `domain.ru/<path>`.
|
||||
|
||||
## Решение
|
||||
|
||||
В Nginx Proxy Manager нужно добавить `location` для нужного маршрута и в дополнительных настройках срезать prefix перед проксированием:
|
||||
|
||||
```nginx
|
||||
rewrite ^/<path>/?(.*)$ /$1 break;
|
||||
```
|
||||
|
||||
Смысл правила:
|
||||
|
||||
- пользователь открывает `domain.ru/<path>/...`;
|
||||
- Nginx убирает `/<path>` из URI;
|
||||
- upstream получает путь так, будто сервис открыт в корне `/`.
|
||||
|
||||
## Когда это нужно
|
||||
|
||||
Подход полезен, если:
|
||||
|
||||
- не хочется заводить отдельный поддомен под мелкий сервис;
|
||||
- сервис живет за reverse proxy в homelab;
|
||||
- внешний URL должен быть компактным;
|
||||
- нужно спрятать несколько внутренних сервисов за одним доменом.
|
||||
|
||||
## Ограничения
|
||||
|
||||
Не каждый сервис нормально работает под path-prefix. Возможные проблемы:
|
||||
|
||||
- абсолютные ссылки на `/assets`, `/api`, `/static`;
|
||||
- WebSocket-маршруты;
|
||||
- OAuth/callback URL;
|
||||
- hardcoded base URL внутри приложения;
|
||||
- редиректы на `/`, из-за которых пользователь выпадает из `/<path>`.
|
||||
|
||||
Если приложение поддерживает настройку base path/base URL, лучше указать ее явно. Rewrite в proxy — рабочий хак, но не полноценная замена поддержке subpath внутри приложения.
|
||||
|
||||
## Связанные заметки
|
||||
|
||||
- [[Infrastructure — ada-dev]] — где NPM используется как публичный и локальный reverse proxy.
|
||||
- [[CA и NGINX]] — TLS и базовая настройка Nginx.
|
||||
- [[Docker - Дополнительные знания]] — эксплуатация сервисов в контейнерах.
|
||||
Reference in New Issue
Block a user