Якщо ви шукаєте спосіб налаштувати SSL сертифікат для вашого Wiki.js за допомогою Nginx на сервері Ubuntu, цей посібник саме для вас. Ми пройдемо весь процес крок за кроком, використовуючи вигаданий домен wiki.exemplo.com.br
як приклад.
Попередні вимоги
Перед тим як почати, переконайтеся, що у вас є:
- Ubuntu Server 22.04
- Встановлений Nginx
- Встановлений і працюючий Wiki.js
- Ваші файли сертифіката SSL (ca.crt, priv.key і pub.crt)
Налаштування сертифікатів
Перший крок — організувати ваші SSL сертифікати в безпечному місці. Виконайте наступні команди:
sudo mkdir -p /etc/nginx/ssl/wiki.exemplo.com.br
sudo cp ca.crt priv.key pub.crt /etc/nginx/ssl/wiki.exemplo.com.br/
sudo chmod 600 /etc/nginx/ssl/wiki.exemplo.com.br/*
Налаштування Nginx
Тепер давайте створимо конфігурацію для Nginx. Створіть новий файл:
sudo nano /etc/nginx/sites-available/wiki.exemplo.com.br
Додайте наступну конфігурацію:
server {
listen 80;
server_name wiki.exemplo.com.br;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name wiki.exemplo.com.br;
# Налаштування SSL
ssl_certificate /etc/nginx/ssl/wiki.exemplo.com.br/pub.crt;
ssl_certificate_key /etc/nginx/ssl/wiki.exemplo.com.br/priv.key;
ssl_trusted_certificate /etc/nginx/ssl/wiki.exemplo.com.br/ca.crt;
# Налаштування безпеки
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
# Налаштування проксі
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Підтримка WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Активація конфігурації
Щоб активувати конфігурацію, створіть символічне посилання:
sudo ln -s /etc/nginx/sites-available/wiki.exemplo.com.br /etc/nginx/sites-enabled/
Перевірте, чи конфігурація правильна:
sudo nginx -t
Якщо все в порядку, перезапустіть Nginx:
sudo systemctl restart nginx
Перевірка дозволів
Якщо ви отримали помилку 403 Forbidden, перевірте дозволи директорії Wiki.js:
ls -la /var/www/wikijs
При необхідності змініть дозволи:
sudo chown -R wikijs:wikijs /var/www/wikijs
sudo chmod -R 755 /var/www/wikijs
Керування сервісом Wiki.js
Щоб перевірити статус Wiki.js:
sudo systemctl status wikijs
Щоб запустити сервіс:
sudo systemctl start wikijs
sudo systemctl enable wikijs # Для автоматичного запуску
Моніторинг і логи
Щоб моніторити логи у разі проблем:
Логи Nginx:
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log
Логи Wiki.js:
sudo journalctl -u wikijs -f
Поради з безпеки
- Дозволи на файли: Підтримуйте обмеження дозволів на сертифікати (600)
- Безпечні протоколи: Використовуйте лише TLSv1.2 і TLSv1.3
- Оновлення: Тримайте Nginx і Wiki.js в актуальному стані
- Firewall: Налаштуйте, щоб дозволити лише порти 80 і 443
5.
Резервні копії: Робіть регулярні резервні копії сертифікатів і налаштувань
Поширені проблеми та рішення
Помилка сертифіката
Перевірте, чи правильні шляхи до файлів сертифікатів у конфігурації Nginx.
Помилка 403 Forbidden
Перевірте дозволи на директорії та файли Wiki.js.
Помилка 502 Bad Gateway
Переконайтеся, що Wiki.js працює на порту 3000 і доступний локально.
Відмова в з’єднанні
Перевірте налаштування фаєрволу та чи відкриті необхідні порти.
Висновок
З цими налаштуваннями ваш Wiki.js працюватиме безпечно з SSL через Nginx. Не забувайте тримати ваші сертифікати актуальними і регулярно робити резервні копії налаштувань.
Корисні ресурси
Перекладено з: Configurando Certificado SSL no Nginx com Wiki.js