Проект

Общее

Профиль

Включить Redmine Https TLS 13 » История » Версия 4

Redmine Admin, 16.01.2026 11:22

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>&lt;VirtualHost *:443&gt;
25
  ServerName 192.168.168.93
26
27
  HttpProtocolOptions Unsafe
28
29
  DocumentRoot /var/www/redmine/public
30
31
  &lt;Directory /var/www/redmine/public&gt;
32
    Options -MultiViews
33
    Require all granted
34
    AllowOverride All
35
  &lt;/Directory&gt;
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
&lt;/VirtualHost&gt;</code></pre>
44
45
<p>И измените ваш HTTP-блок на редирект (опционально):</p>
46
47
<pre><code>&lt;VirtualHost *:80&gt;
48
  ServerName 192.168.168.93
49
  Redirect permanent / https://192.168.168.93/
50
&lt;/VirtualHost&gt;</code></pre>
51
52 2 Redmine Admin
<p>В итоге конфиг будет иметь вид:</p>
53
54 3 Redmine Admin
<pre><code>&lt;<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 4 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>