установка_ssl_сертификатов_для_веб-публикации

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
установка_ssl_сертификатов_для_веб-публикации [2023/03/31 10:55] jpустановка_ssl_сертификатов_для_веб-публикации [2023/04/07 08:48] (current) jp
Line 1: Line 1:
 ===== Установка SSL сертификатов для веб-публикации ===== ===== Установка SSL сертификатов для веб-публикации =====
  
-1. Запрашиваем в УЦ сертификаты для веб-сервера. Хорошо подойдёт одноименный шаблон в Windows CA. В шаблоне должен быть экспортируемый закрытый ключ, чтобы мы могли выгрузить сертификат и импортировать его в Apache. В запрос сертификата нужно включить все имена, по которым собираемся обращаться к веб-серверу 1С.+1. Запрашиваем в УЦ сертификаты для веб-сервера. Хорошо подойдёт одноименный шаблон в Windows CA. 
  
-2. Экспортируем полученный сертификат в base64 кодировке, в файле pfx. Также полезно эскпортировать две цепочки сертификатов: одну полную, которая включает сертификат сервера и сертификаты всех УЦ, включая корневой, а также цепочку сертификатов для удостоверяющих центров - к примеру, издающий + корневой тоже в base64. +В шаблоне должен быть экспортируемый закрытый ключ, чтобы мы могли выгрузить сертификат и импортировать его в Apache. В запрос сертификата в //subject alternative names// нужно включить все имена, по которым собираемся обращаться к веб-серверу 1С. 
 + 
 +2. Экспортируем полученный сертификат в base64 кодировке, в файле pfx. Также полезно эскпортировать две цепочки сертификатов: одну полную, которая включает сертификат сервера и сертификаты всех УЦ, включая корневой, а также цепочку сертификатов для удостоверяющих центров - к примеру, издающий + корневой (тоже в base64)
  
 :!: //Цепочка формируется простым копированием текста сертификата. При этом, сначала идет сертификат самого сервера, затем сертификат промежуточного центра, затем сертификат корневого.// :!: //Цепочка формируется простым копированием текста сертификата. При этом, сначала идет сертификат самого сервера, затем сертификат промежуточного центра, затем сертификат корневого.//
  
-Пример цепочки из трёх сертификатов - сервера, промежуточного УЦ, корневого УЦ:+Пример цепочки из трёх сертификатов - сервера, промежуточного УЦ, корневого УЦ
  
 <code> <code>
Line 128: Line 130:
 4. Получаем два разных файла для сертификата сервера - открытый и закрытый ключ из загруженного pfx. Как это сделать - описано в разделе [[OpenSSL]]. 4. Получаем два разных файла для сертификата сервера - открытый и закрытый ключ из загруженного pfx. Как это сделать - описано в разделе [[OpenSSL]].
  
-5. Все сертификаты с открытым ключем (сертификат сервера, цепочку, а также полную цепочку) - копируем в папку:+5. Все сертификаты с открытым ключем (сертификат сервера, цепочку, а также полную цепочку) - копируем в папку certs
  
-   /etc/ssl/certs/*.*+   /etc/ssl/certs/1c-srv.cer 
 +   /etc/ssl/certs/ourchain-1c-srv.cer 
 +   /etc/ssl/certs/ourchain.cer
  
-Закрытый ключ сертификата сервера копируем в папку+Закрытый ключ сертификата сервера копируем в папку private 
  
    /etc/ssl/private/server.key    /etc/ssl/private/server.key
  
-6. Если на нашем сервере Apache обслуживает только 1С, то нам просто нужно отредактировать файл+6. Если на нашем сервере Apache обслуживает только 1С, то нам просто нужно отредактировать файл с сайтом по умолчанию
  
    /etc/apache2/sites-enabled/000-default.conf    /etc/apache2/sites-enabled/000-default.conf
-Добавим в него virtualhost по умолчанию для https+Добавим в него блок virtualhost для всех подключений по https
  
 <code> <code>
Line 159: Line 163:
  
 В данном конфиге //1c-srv.cer// - это файл сертификата нашего сервера, //ourchain-1c-srv.cer// - это полная цепочка, включающая сертификат сервера, //1c-srv.key// - приватный ключ, //ourchain.cer// - цепочка сертификатов УЦ. В данном конфиге //1c-srv.cer// - это файл сертификата нашего сервера, //ourchain-1c-srv.cer// - это полная цепочка, включающая сертификат сервера, //1c-srv.key// - приватный ключ, //ourchain.cer// - цепочка сертификатов УЦ.
 +
 +7. Перезапускаем Apache
 +
 +   apachectl restart
 +8. Если получаем ошибку о том, что директива //SSLEngine on// непонятна серверу - включаем модуль SSL и перезапускаем Apache снова
 +
 +   sudo a2enmod ssl
 +9. Проверяем доступность публикации по https.
 +
 +----
 +
 +=== Делаем редирект с http на https в Apache ===
 +
 +Добавляем правила рерайта в файл
 +
 +   /etc/apache2/sites-available/000-default.conf
 +<code>
 +RewriteEngine On
 +RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
 +RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
 +</code>
 +
 +Перезапускаем Apache
 +
 +   systemctl restart apache2
 +Если при перезагрузке Apache получаем сообщение об ошибке - скорее всего у нас не установлен mod rewrite. 
 +
 +Установим его и перезапустим Apache снова
 +
 +   sudo a2enmod rewrite
 +{{tag>1C Certificates Apache ADCS PKI}}
установка_ssl_сертификатов_для_веб-публикации.1680260131.txt.gz · Last modified: 2023/03/31 10:55 by jp