Включить Redmine Https TLS 13 » История » Редакция 7
Редакция 6 (Redmine Admin, 16.01.2026 11:24) → Редакция 7/10 (Redmine Admin, 16.01.2026 11:25)
# Включить Redmine Https TLS 13
<h1>Рекомендуемый путь: Создать самоподписанный сертификат (бесплатно, без DNS)</h1>
<p>Это <strong>не требует публичного домена</strong>, работает по IP или любому имени, и подходит для тестовой среды.</p>
<h2>1. Создайте самоподписанный сертификат:</h2>
<pre><code>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"</code></pre>
<div class="note">
<p>Мы используем <strong>IP-адрес как CN (Common Name)</strong>, так как у вас нет DNS.<br>
Для браузеров это не идеально (лучше Subject Alternative Name), но для теста — нормально.</p>
</div>
<h2>2. Обновите конфиг Apache (<code>/etc/apache2/sites-available/redmine.conf</code>):</h2>
<p>Добавьте блок для порта 443:</p>
<pre><code><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></code></pre>
<p>И измените ваш HTTP-блок на редирект (опционально):</p>
<pre><code><VirtualHost *:80>
ServerName 192.168.168.93
Redirect permanent / https://192.168.168.93/
</VirtualHost></code></pre>
<p>В итоге конфиг будет иметь вид:</p>
<pre><code><VirtualHost *:80>
ServerName 192.168.168.93
ServerAlias alexnet.crazedns.ru
# Разрешить Host-заголовки с портом (например, :5080)
HttpProtocolOptions Unsafe
DocumentRoot /var/www/redmine/public
<Directory /var/www/redmine/public>
Options -MultiViews
Require all granted
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined
</VirtualHost></code></pre> /VirtualHost></code></pre>
<h2>3. Включите модуль SSL и перезапустите Apache:</h2>
<pre><code>sudo a2enmod ssl
sudo systemctl restart apache2</code></pre>
<h2>4. Откройте в браузере:</h2>
<pre><code>https://192.168.168.93</code></pre>
<div class="warning">
<p>Браузер покажет предупреждение <strong>"Небезопасное соединение"</strong> — это нормально для самоподписанных сертификатов. Нажмите <strong>«Дополнительно» → «Перейти на сайт»</strong> (или аналог в вашем браузере).</p>
</div>
<div class="note">
<p><strong>🔒 Чтобы избежать предупреждения в будущем</strong>, можно импортировать сертификат <code>fullchain.pem</code> в доверенные корневые сертификаты вашей ОС (Windows/Linux/macOS), но для теста это обычно не нужно.</p>
</div>
<h2>❌ Нельзя сделать:</h2>
<ul>
<li><strong>HTTPS без сертификата</strong> — Apache (и любой веб-сервер) не запустит SSL-соединение без ключа и сертификата.</li>
<li><strong>Использовать Let’s Encrypt без публичного DNS и открытого порта 80</strong> — не сработает в локальной сети.</li>
</ul>
<h2>💡 Альтернатива (если не хотите возиться с HTTPS вообще):</h2>
<p>Если вам <strong>не требуется именно HTTPS</strong>, а задача — просто "перевести Redmine на HTTPS" формально, то <strong>в тестовой среде можно оставить HTTP</strong>. Но учтите:</p>
<ul>
<li>Современные браузеры могут блокировать некоторые функции (например, геолокацию, куки без флага Secure).</li>
<li>Если вы тестируете интеграции, требующие HTTPS (OAuth, API с strict transport), тогда HTTPS обязателен.</li>
</ul>
<h2>Вывод:</h2>
<p>👉 <strong>Да, вы можете включить HTTPS без публичного DNS — через самоподписанный сертификат.</strong> Это стандартная практика для локальных/тестовых серверов.</p>
</body>