Проект

Общее

Профиль

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

Redmine Admin, 16.01.2026 11:10

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
<h2>3. Включите модуль SSL и перезапустите Apache:</h2>
53
<pre><code>sudo a2enmod ssl
54
sudo systemctl restart apache2</code></pre>
55
56
<h2>4. Откройте в браузере:</h2>
57
<pre><code>https://192.168.168.93</code></pre>
58
59
<div class="warning">
60
  <p>Браузер покажет предупреждение <strong>"Небезопасное соединение"</strong> — это нормально для самоподписанных сертификатов. Нажмите <strong>«Дополнительно» → «Перейти на сайт»</strong> (или аналог в вашем браузере).</p>
61
</div>
62
63
<div class="note">
64
  <p><strong>🔒 Чтобы избежать предупреждения в будущем</strong>, можно импортировать сертификат <code>fullchain.pem</code> в доверенные корневые сертификаты вашей ОС (Windows/Linux/macOS), но для теста это обычно не нужно.</p>
65
</div>
66
67
<h2>❌ Нельзя сделать:</h2>
68
<ul>
69
  <li><strong>HTTPS без сертификата</strong> — Apache (и любой веб-сервер) не запустит SSL-соединение без ключа и сертификата.</li>
70
  <li><strong>Использовать Let’s Encrypt без публичного DNS и открытого порта 80</strong> — не сработает в локальной сети.</li>
71
</ul>
72
73
<h2>💡 Альтернатива (если не хотите возиться с HTTPS вообще):</h2>
74
<p>Если вам <strong>не требуется именно HTTPS</strong>, а задача — просто "перевести Redmine на HTTPS" формально, то <strong>в тестовой среде можно оставить HTTP</strong>. Но учтите:</p>
75
<ul>
76
  <li>Современные браузеры могут блокировать некоторые функции (например, геолокацию, куки без флага Secure).</li>
77
  <li>Если вы тестируете интеграции, требующие HTTPS (OAuth, API с strict transport), тогда HTTPS обязателен.</li>
78
</ul>
79
80
<h2>Вывод:</h2>
81
<p>👉 <strong>Да, вы можете включить HTTPS без публичного DNS — через самоподписанный сертификат.</strong> Это стандартная практика для локальных/тестовых серверов.</p>
82
83
</body>