docs: convert PFX to PEM for nginx

Made-with: Cursor
This commit is contained in:
PTah
2026-04-22 14:36:26 +10:00
parent 7febeed13f
commit 544eda2640
+25
View File
@@ -33,6 +33,31 @@ sudo install -m 0600 /путь/к/privkey.pem /etc/nginx/ssl/kalinamall/git.ka
sudo chown root:root /etc/nginx/ssl/kalinamall/* sudo chown root:root /etc/nginx/ssl/kalinamall/*
``` ```
### Сертификат в формате PFX (`.pfx` / `.p12`)
Nginx **не** читает PFX напрямую в `ssl_certificate` / `ssl_certificate_key` — нужны **PEM**: отдельно **цепочка** (сервер + промежуточные CA) и **закрытый ключ**. PFX — контейнер, из него извлекают OpenSSL (пароль к PFX введёте по запросу):
```bash
# Закрытый ключ (права только root)
openssl pkcs12 -in wildcard.pfx -nocerts -nodes -out git.kalinamall.ru.key
# Сертификаты из контейнера (серверный + при необходимости цепочку соберите в один fullchain ниже)
openssl pkcs12 -in wildcard.pfx -clcerts -nokeys -out cert.pem
openssl pkcs12 -in wildcard.pfx -cacerts -nokeys -out chain.pem 2>/dev/null || true
```
Часто для **`ssl_certificate`** нужен один файл «сервер + промежуточные»:
```bash
cat cert.pem chain.pem > git.kalinamall.ru-fullchain.pem
sudo chmod 0600 git.kalinamall.ru.key
sudo chmod 0644 git.kalinamall.ru-fullchain.pem
```
На OpenSSL 3 старые PFX иногда требуют флаг **`-legacy`** к `pkcs12`. При ошибках расшифровки проверьте пароль и точное имя алиаса в PFX (`openssl pkcs12 -in wildcard.pfx -info -noout`).
Пути к получившимся **`…-fullchain.pem`** и **`…key`** подставьте в конфиг nginx.
## 3. Map для WebSocket ## 3. Map для WebSocket
Gitea в браузере использует WebSocket. Директива **`map`** должна быть в контексте **`http {}`** один раз на весь nginx. Gitea в браузере использует WebSocket. Директива **`map`** должна быть в контексте **`http {}`** один раз на весь nginx.