Проект

Общее

Профиль

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

Redmine Admin, 16.01.2026 11:26

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 5 Redmine Admin
<pre><code>&lt;VirtualHost *:80>
55 1 Redmine Admin
  ServerName 192.168.168.93
56 8 Redmine Admin
  #ServerAlias alexnet.crazedns.ru
57
  Redirect permanent / https://192.168.168.93/
58 3 Redmine Admin
59
  # Разрешить Host-заголовки с портом (например, :5080)
60
  HttpProtocolOptions Unsafe
61
62
  DocumentRoot /var/www/redmine/public
63
64
  <Directory /var/www/redmine/public>
65
    Options -MultiViews
66
    Require all granted
67
    AllowOverride All
68
  </Directory>
69
70
  ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
71
  CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined
72 7 Redmine Admin
&lt;/VirtualHost&gt;</code></pre>
73 2 Redmine Admin
74 1 Redmine Admin
<h2>3. Включите модуль SSL и перезапустите Apache:</h2>
75
<pre><code>sudo a2enmod ssl
76
sudo systemctl restart apache2</code></pre>
77
78
<h2>4. Откройте в браузере:</h2>
79
<pre><code>https://192.168.168.93</code></pre>
80
81
<div class="warning">
82
  <p>Браузер покажет предупреждение <strong>"Небезопасное соединение"</strong> — это нормально для самоподписанных сертификатов. Нажмите <strong>«Дополнительно» → «Перейти на сайт»</strong> (или аналог в вашем браузере).</p>
83
</div>
84
85
<div class="note">
86
  <p><strong>🔒 Чтобы избежать предупреждения в будущем</strong>, можно импортировать сертификат <code>fullchain.pem</code> в доверенные корневые сертификаты вашей ОС (Windows/Linux/macOS), но для теста это обычно не нужно.</p>
87
</div>
88
89
<h2>❌ Нельзя сделать:</h2>
90
<ul>
91
  <li><strong>HTTPS без сертификата</strong> — Apache (и любой веб-сервер) не запустит SSL-соединение без ключа и сертификата.</li>
92
  <li><strong>Использовать Let’s Encrypt без публичного DNS и открытого порта 80</strong> — не сработает в локальной сети.</li>
93
</ul>
94
95
<h2>💡 Альтернатива (если не хотите возиться с HTTPS вообще):</h2>
96
<p>Если вам <strong>не требуется именно HTTPS</strong>, а задача — просто "перевести Redmine на HTTPS" формально, то <strong>в тестовой среде можно оставить HTTP</strong>. Но учтите:</p>
97
<ul>
98
  <li>Современные браузеры могут блокировать некоторые функции (например, геолокацию, куки без флага Secure).</li>
99
  <li>Если вы тестируете интеграции, требующие HTTPS (OAuth, API с strict transport), тогда HTTPS обязателен.</li>
100
</ul>
101
102
<h2>Вывод:</h2>
103
<p>👉 <strong>Да, вы можете включить HTTPS без публичного DNS — через самоподписанный сертификат.</strong> Это стандартная практика для локальных/тестовых серверов.</p>
104
105
</body>