Включить Redmine Https TLS 13 » История » Версия 5
Redmine Admin, 16.01.2026 11:23
| 1 | 1 | Redmine Admin | # Включить Redmine Https TLS 13 |
|---|---|---|---|
| 2 | |||
| 3 | |||
| 4 | <h1>Рекомендуемый путь: Создать самоподписанный сертификат (бесплатно, без DNS)</h1> |
||
| 5 | |||
| 6 | <p>Это <strong>не требует публичного домена</strong>, работает по IP или любому имени, и подходит для тестовой среды.</p> |
||
| 7 | |||
| 8 | <h2>1. Создайте самоподписанный сертификат:</h2> |
||
| 9 | <pre><code>sudo mkdir -p /etc/ssl/redmine |
||
| 10 | sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ |
||
| 11 | -keyout /etc/ssl/redmine/privkey.pem \ |
||
| 12 | -out /etc/ssl/redmine/fullchain.pem \ |
||
| 13 | -subj "/CN=192.168.168.93"</code></pre> |
||
| 14 | |||
| 15 | <div class="note"> |
||
| 16 | <p>Мы используем <strong>IP-адрес как CN (Common Name)</strong>, так как у вас нет DNS.<br> |
||
| 17 | Для браузеров это не идеально (лучше Subject Alternative Name), но для теста — нормально.</p> |
||
| 18 | </div> |
||
| 19 | |||
| 20 | <h2>2. Обновите конфиг Apache (<code>/etc/apache2/sites-available/redmine.conf</code>):</h2> |
||
| 21 | |||
| 22 | <p>Добавьте блок для порта 443:</p> |
||
| 23 | |||
| 24 | <pre><code><VirtualHost *:443> |
||
| 25 | ServerName 192.168.168.93 |
||
| 26 | |||
| 27 | HttpProtocolOptions Unsafe |
||
| 28 | |||
| 29 | DocumentRoot /var/www/redmine/public |
||
| 30 | |||
| 31 | <Directory /var/www/redmine/public> |
||
| 32 | Options -MultiViews |
||
| 33 | Require all granted |
||
| 34 | AllowOverride All |
||
| 35 | </Directory> |
||
| 36 | |||
| 37 | SSLEngine on |
||
| 38 | SSLCertificateFile /etc/ssl/redmine/fullchain.pem |
||
| 39 | SSLCertificateKeyFile /etc/ssl/redmine/privkey.pem |
||
| 40 | |||
| 41 | ErrorLog ${APACHE_LOG_DIR}/redmine_ssl_error.log |
||
| 42 | CustomLog ${APACHE_LOG_DIR}/redmine_ssl_access.log combined |
||
| 43 | </VirtualHost></code></pre> |
||
| 44 | |||
| 45 | <p>И измените ваш HTTP-блок на редирект (опционально):</p> |
||
| 46 | |||
| 47 | <pre><code><VirtualHost *:80> |
||
| 48 | ServerName 192.168.168.93 |
||
| 49 | Redirect permanent / https://192.168.168.93/ |
||
| 50 | </VirtualHost></code></pre> |
||
| 51 | |||
| 52 | 2 | Redmine Admin | <p>В итоге конфиг будет иметь вид:</p> |
| 53 | |||
| 54 | 5 | Redmine Admin | <pre><code><VirtualHost *:80> |
| 55 | 1 | Redmine Admin | ServerName 192.168.168.93 |
| 56 | 3 | Redmine Admin | ServerAlias alexnet.crazedns.ru |
| 57 | |||
| 58 | # Разрешить Host-заголовки с портом (например, :5080) |
||
| 59 | HttpProtocolOptions Unsafe |
||
| 60 | |||
| 61 | DocumentRoot /var/www/redmine/public |
||
| 62 | |||
| 63 | <Directory /var/www/redmine/public> |
||
| 64 | Options -MultiViews |
||
| 65 | Require all granted |
||
| 66 | AllowOverride All |
||
| 67 | </Directory> |
||
| 68 | |||
| 69 | ErrorLog ${APACHE_LOG_DIR}/redmine_error.log |
||
| 70 | CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined |
||
| 71 | 5 | Redmine Admin | </VirtualHost></code></pre> |
| 72 | 2 | Redmine Admin | |
| 73 | 1 | Redmine Admin | <h2>3. Включите модуль SSL и перезапустите Apache:</h2> |
| 74 | <pre><code>sudo a2enmod ssl |
||
| 75 | sudo systemctl restart apache2</code></pre> |
||
| 76 | |||
| 77 | <h2>4. Откройте в браузере:</h2> |
||
| 78 | <pre><code>https://192.168.168.93</code></pre> |
||
| 79 | |||
| 80 | <div class="warning"> |
||
| 81 | <p>Браузер покажет предупреждение <strong>"Небезопасное соединение"</strong> — это нормально для самоподписанных сертификатов. Нажмите <strong>«Дополнительно» → «Перейти на сайт»</strong> (или аналог в вашем браузере).</p> |
||
| 82 | </div> |
||
| 83 | |||
| 84 | <div class="note"> |
||
| 85 | <p><strong>🔒 Чтобы избежать предупреждения в будущем</strong>, можно импортировать сертификат <code>fullchain.pem</code> в доверенные корневые сертификаты вашей ОС (Windows/Linux/macOS), но для теста это обычно не нужно.</p> |
||
| 86 | </div> |
||
| 87 | |||
| 88 | <h2>❌ Нельзя сделать:</h2> |
||
| 89 | <ul> |
||
| 90 | <li><strong>HTTPS без сертификата</strong> — Apache (и любой веб-сервер) не запустит SSL-соединение без ключа и сертификата.</li> |
||
| 91 | <li><strong>Использовать Let’s Encrypt без публичного DNS и открытого порта 80</strong> — не сработает в локальной сети.</li> |
||
| 92 | </ul> |
||
| 93 | |||
| 94 | <h2>💡 Альтернатива (если не хотите возиться с HTTPS вообще):</h2> |
||
| 95 | <p>Если вам <strong>не требуется именно HTTPS</strong>, а задача — просто "перевести Redmine на HTTPS" формально, то <strong>в тестовой среде можно оставить HTTP</strong>. Но учтите:</p> |
||
| 96 | <ul> |
||
| 97 | <li>Современные браузеры могут блокировать некоторые функции (например, геолокацию, куки без флага Secure).</li> |
||
| 98 | <li>Если вы тестируете интеграции, требующие HTTPS (OAuth, API с strict transport), тогда HTTPS обязателен.</li> |
||
| 99 | </ul> |
||
| 100 | |||
| 101 | <h2>Вывод:</h2> |
||
| 102 | <p>👉 <strong>Да, вы можете включить HTTPS без публичного DNS — через самоподписанный сертификат.</strong> Это стандартная практика для локальных/тестовых серверов.</p> |
||
| 103 | |||
| 104 | </body> |