Проект

Общее

Профиль

Включить 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>&lt;VirtualHost *:443&gt; 
   ServerName 192.168.168.93 

   HttpProtocolOptions Unsafe 

   DocumentRoot /var/www/redmine/public 

   &lt;Directory /var/www/redmine/public&gt; 
     Options -MultiViews 
     Require all granted 
     AllowOverride All 
   &lt;/Directory&gt; 

   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 
 &lt;/VirtualHost&gt;</code></pre> 

 <p>И измените ваш HTTP-блок на редирект (опционально):</p> 

 <pre><code>&lt;VirtualHost *:80&gt; 
   ServerName 192.168.168.93 
   Redirect permanent / https://192.168.168.93/ 
 &lt;/VirtualHost&gt;</code></pre> 

 <p>В итоге конфиг будет иметь вид:</p> 

 <pre><code>&lt;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 
 &lt;/VirtualHost&gt;</code></pre> /VirtualHost&gt;</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>