пятница, 21 июня 2019 г.

Публикация ИБ на веб-сервере Apache 2.4.


Secure Apache2 HTTPS Websites with Let’s Encrypt Free SSL/TLS Certificates on Ubuntu 16.04 | 18.04

$ sudo dpkg -i 1c-enterprise83-ws_8.3.13-1690_amd64.deb$ sudo apt-get install apache2 -y

Создаем директорию для vrd-файла:
$ sudo mkdir -p /var/www/ib/demo

А также файл конфигурации Apache:
$ sudo touch /etc/apache2/conf-available/demo.conf

Переходим в каталог со утилитой публикации веб-клиента:
$ cd /opt/1C/v8.3/x86_64/

Запускаем утилиту:
$ sudo ./webinst -apache24 -wsdir demo -dir '/var/www/ib/demo' -connstr 'Srvr="test";Ref="demo";' -confPath /etc/apache2/conf-available/demo.conf


Где /var/www/ib/demo - директория где будет создан vrd-файл, demo - имя ИБ, test - адрес сервера 1С:Предпрятие, а /etc/apache2/conf-available/demo.conf - путь до конфигурационного файла Apache.

 Подключаем конфигурацию:
$ sudo a2enconf demo

 Перезагрузка Apache:
$ sudo service apache2 reload
# systemctl restart apache2

Смотрим:
http://test/demo или https://test/demo

Может быть так:
$ sudo apachectl -V | grep -i mpm
AH00534: apache2: Configuration error: No MPM loaded.

А может вот так:
$ sudo apachectl -V | grep -i mpm
Server MPM:     event
$ sudo a2dismod mpm_event

$ sudo a2enmod mpm_worker

Considering conflict mpm_event for mpm_worker:
Considering conflict mpm_prefork for mpm_worker:
Enabling module mpm_worker.
To activate the new configuration, you need to run:
  service apache2 restart

$ sudo service apache2 restart


$ sudo apachectl -V | grep -i mpm
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.0.239. Set the 'ServerName' directive globally to suppress this message
Server MPM:     worker

Apache MPM worker

$ sudo nano /etc/apache2/mods-enabled/mpm_worker.conf

# worker MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadLimit: ThreadsPerChild can be changed to this maximum value during a
#                         graceful restart. ThreadLimit can only be changed by stopping
#                         and starting Apache.
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestWorkers: maximum number of threads
# MaxConnectionsPerChild: maximum number of requests a server process serves

<IfModule mpm_worker_module>
        StartServers                     2
        MinSpareThreads          25
        MaxSpareThreads          75
        ThreadLimit                      64
        ThreadsPerChild          25
        MaxRequestWorkers         150
        MaxConnectionsPerChild   0
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Делаем сертификаты  вариант от root :


$ sudo mkdir /var/www/example.com  
$ sudo nano /etc/apache2/conf-available/example.com.conf

<VirtualHost *:80>
        ServerName example.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/example.com
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Сохранить.

Подключаем конфигурацию:
$ sudo a2enconf example.com  

 Перезагрузка Apache:
$ sudo service apache2 reload
# systemctl restart apache2

Проверка:

http://example.com/demo/

Кроме того, мы можем включить поддержку ssl
для нашего веб-сервера.


Делаем сертификаты есть варианты либо от root :

Вариант от root :
$ sudo -i
# curl https://get.acme.sh | sh

Делаем сертификаты:
# /root/.acme.sh/acme.sh --issue -d example.com -w /var/www/example.com
$ ~/.acme.sh/acme.sh --issue -d example.com -w /var/www/example.com

[Mon Jun 17 12:28:42 CEST 2019] Your cert is in  /root/.acme.sh/example.com/example.com.cer
[Mon Jun 17 12:28:42 CEST 2019] Your cert key is in  /root/.acme.sh/
example.co/example.com.key
[Mon Jun 17 12:28:42 CEST 2019] The intermediate CA cert is in  /root/.acme.sh/
example.co/ca.cer
[Mon Jun 17 12:28:42 CEST 2019] And the full chain certs is there:  /root/.acme.sh/
example.com/fullchain.cer



Для этого выполните:

$ sudo a2enmod ssl 
$ sudo a2enmod rewrite

$ sudo nano /etc/apache2/sites-available/site.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/example.com
    SSLEngine on
    SSLCertificateFile      /root/.acme.sh/example.com/example.com.cer
    SSLCertificateKeyFile  /root/.acme.sh/example.com/example.com.key
    #SSLCertificateChainFile /root/.acme.sh/example.com/fullchain.cer
</VirtualHost> 

Сохранить.

$ sudo a2ensite site
#(отключить sudo a2dissite site)


Перезагрузка Apache:
#$ sudo systemctl restart apache2
$ sudo service apache2 reload

https://example.com/demo/


Обратить внимание, если ставили сертификаты для пользователя root автоматом:

$ sudo crontab -l
0 2 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

Как сделать так, чтобы сайт работал только с SSL шифрованием

$ sudo nano /etc/apache2/sites-available/site.conf

Установка 1С 8.3 в файловом варианте на CentOS 7.3 и публикация базы через WEB сервер APACHE


Комментариев нет:

Отправить комментарий