Проект

Общее

Профиль

Действия

Включить Redmine Https TLS 13 » История » Редакция 3

« Предыдущее | Редакция 3/10 (Разница(diff)) | Следующее »
Redmine Admin, 16.01.2026 11:21


Включить Redmine Https TLS 13

Рекомендуемый путь: Создать самоподписанный сертификат (бесплатно, без DNS)

Это не требует публичного домена, работает по IP или любому имени, и подходит для тестовой среды.

1. Создайте самоподписанный сертификат:

sudo mkdir -p /etc/ssl/redmine
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout /etc/ssl/redmine/privkey.pem \
  -out /etc/ssl/redmine/fullchain.pem \
  -subj "/CN=192.168.168.93"

Мы используем IP-адрес как CN (Common Name), так как у вас нет DNS.
Для браузеров это не идеально (лучше Subject Alternative Name), но для теста — нормально.

2. Обновите конфиг Apache (/etc/apache2/sites-available/redmine.conf):

Добавьте блок для порта 443:

<VirtualHost *:443>
  ServerName 192.168.168.93

  HttpProtocolOptions Unsafe

  DocumentRoot /var/www/redmine/public

  <Directory /var/www/redmine/public>
    Options -MultiViews
    Require all granted
    AllowOverride All
  </Directory>

  SSLEngine on
  SSLCertificateFile /etc/ssl/redmine/fullchain.pem
  SSLCertificateKeyFile /etc/ssl/redmine/privkey.pem

  ErrorLog ${APACHE_LOG_DIR}/redmine_ssl_error.log
  CustomLog ${APACHE_LOG_DIR}/redmine_ssl_access.log combined
</VirtualHost>

И измените ваш HTTP-блок на редирект (опционально):

<VirtualHost *:80>
  ServerName 192.168.168.93
  Redirect permanent / https://192.168.168.93/
</VirtualHost>

В итоге конфиг будет иметь вид:

<
  ServerName 192.168.168.93
  ServerAlias alexnet.crazedns.ru

  # Разрешить Host-заголовки с портом (например, :5080)
  HttpProtocolOptions Unsafe

  DocumentRoot /var/www/redmine/public

  
    Options -MultiViews
    Require all granted
    AllowOverride All
  

  ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
  CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined
;

3. Включите модуль SSL и перезапустите Apache:

sudo a2enmod ssl
sudo systemctl restart apache2

4. Откройте в браузере:

https://192.168.168.93

Браузер покажет предупреждение "Небезопасное соединение" — это нормально для самоподписанных сертификатов. Нажмите «Дополнительно» → «Перейти на сайт» (или аналог в вашем браузере).

🔒 Чтобы избежать предупреждения в будущем, можно импортировать сертификат fullchain.pem в доверенные корневые сертификаты вашей ОС (Windows/Linux/macOS), но для теста это обычно не нужно.

❌ Нельзя сделать:

  • HTTPS без сертификата — Apache (и любой веб-сервер) не запустит SSL-соединение без ключа и сертификата.
  • Использовать Let’s Encrypt без публичного DNS и открытого порта 80 — не сработает в локальной сети.

💡 Альтернатива (если не хотите возиться с HTTPS вообще):

Если вам не требуется именно HTTPS, а задача — просто "перевести Redmine на HTTPS" формально, то в тестовой среде можно оставить HTTP. Но учтите:

  • Современные браузеры могут блокировать некоторые функции (например, геолокацию, куки без флага Secure).
  • Если вы тестируете интеграции, требующие HTTPS (OAuth, API с strict transport), тогда HTTPS обязателен.

Вывод:

👉 Да, вы можете включить HTTPS без публичного DNS — через самоподписанный сертификат. Это стандартная практика для локальных/тестовых серверов.

Обновлено Redmine Admin 7 месяца назад · 10 изменени(я, ий)