1С + Apache + SSL

Есть некий VDS сервер,который голой попой торчит в интернете. На этом сервере крутится Файловая база 1С. Она же опубликована на web сервере apache ,который доступен по 80 порту.

Задача!?Пользоваться тонким клиентом 1С через защищенное соединение( APACHE+SSL) . Дабы не могли снифить пакеты и узнать пароль. Подробно о проблеме можно почитать ТУТ
Задача вроде не сложная,но есть тонкие моменты в настройке.

Качаем APACHE . Я выбрал версию 2.2.31

Распаковываем содержимое на диск C: . Должно получиться C:\apache22

Открываем C:\Apache22\conf\httpd.conf и в конце файла удаляем все внутри <IfModule ssl_module> ... </IfModule ssl_module> и вставляем туда

SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLMutex default
SSLSessionCache none

Должно получиться ТАК

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLMutex default
SSLSessionCache none
</IfModule>

Ниже добавляем

<Virtualhost *:443>
SSLEngine On
SSLCertificateFile conf/ssl/1c.rusit.org.cert
SSLCertificateKeyFile conf/ssl/1c.rusit.org.key
</Virtualhost>

Подробно остановлюсь на генерации самоподписанного сертификата

Открываем командную строку от имени администратора

cd C:\Apache22\bin\
openssl

req -config C:\Apache22\conf\openssl.cnf -new -out C:\Apache22\conf\ssl\1c.rusit.org.csr ( указывайте полное FQDN имя сервера)

вводим пароль + подтверждение пароля . Далее

Country Name (2 letter code) [AU]: RU (СТРАНА)
State or Province Name (full name) [Some-State]: NN (Штат или Провинция,я ввел NN)
Locality Name (eg, city) : Nizhniy Novgorod (Название Местности)
Organization Name (eg, company): RUSIT LTD ( Название организации,свою я назвал RUSIT LTD)
Organizational Unit Name (eg, section): IT ( Название подразделения)
Common Name (e.g. server FQDN or YOUR name): 1c.rusit.org
(полное имя домена по которому вы будете подключаться из тонкого клиента. https://1c.rusit.org/UT11)
Email Address : rusit(собачка)ya.ru (Адрес Электронки)
Дальше два раза ENTER

В каталоге C:\Apache22\conf\ssl должен появиться файл 1c.rusit.org.csr

Далее вводим

rsa -in privkey.pem -out C:\Apache22\conf\ssl\1c.rusit.org.key
вводим пароль и нажимаем enter

Далее вводим

x509 -in C:\Apache22\conf\ssl\1c.rusit.org.csr -out C:\Apache22\conf\ssl\1c.rusit.org.cert -req -signkey C:\Apache22\conf\ssl\1c.rusit.org.key -days 5999

В ответ получаем

Signature ok
subject=/C=Ru/ST=NN/L=Nizhniy Novgorod/O=rusit LTD/OU=IT/CN=1c.rusit.org/emailAddress=rusit@ya.ru
Getting Private key

Далее вводим

x509 -in  C:\Apache22\conf\ssl\1c.rusit.org.cert -out C:\Apache22\conf\ssl\1c.rusit.org.der.crt -outform DER

Командную строку не закрываем,она нам еще понадобится

Настройка самого web server(a) закончена,но при попытке подключиться к нашему серверу из тонкого клиента мы получим ошибку

Ошибка HTTP при обращении к серверу: https://1c.rusit.org Удаленный узел не прошел проверку

Для ее устранения нам надо сделать следущее

x509 -inform der -in C:\Apache22\conf\ssl\1c.rusit.org.der.crt -out textcert.pem -text -fingerprint -md5

На экране отобразится сгенерированная подпись и сертификат
Через пометить выбираем полученный результат, копируем и добавляем в конец файла
C:\Program Files (x86)\1cv8\8.3.8.1784\bin\cacert.pem

C:\Program Files (x86)\1cv8\8.3.8.1784\bin  (Это путь к актуальной версии платформы,у каждого свой)

Получается


Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
            b0:3f:aa:66:52:33:a1:45
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=Ru, ST=NN, L=Nizhniy Novgorod, O=rusit LTD, OU=IT, CN=1c.rusit.ru/emailAddress=rusit@ya.ru
        Validity
            Not Before: Jul 11 18:40:11 2016 GMT
            Not After : Dec 13 18:40:11 2032 GMT
        Subject: C=Ru, ST=NN, L=Nizhniy Novgorod, O=rusit LTD, OU=IT, CN=1c.rusit.ru/emailAddress=rusit@ya.ru
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:be:e6:51:38:a8:3d:ec:38:44:5b:f7:d4:7f:29:
                    7e:08:80:d1:f7:f3:06:14:3e:4b:4f:6e:0b:bc:14:
                    16:2c:0a:bd:fd:ed:11:c9:39:87:af:91:e3:76:6e:
                    09:08:0f:0c:d4:84:02:47:1d:82:0c:b9:b0:34:a0:
                    88:42:8e:37:27:62:d0:09:2b:1c:44:f4:b5:c2:ba:
                    81:b1:33:81:e3:16:9c:7a:8a:ba:2f:5e:9c:74:8c:
                    5c:56:71:96:9b:d6:cd:60:8e:c9:31:ac:d7:86:6c:
                    e3:05:7e:bc:30:b5:87:91:e3:41:2a:31:3a:e8:01:
                    ae:94:19:14:70:c5:8f:6a:79:e3:0c:e4:12:05:42:
                    fb:e9:25:2c:17:05:95:33:c9:13:a7:a1:91:88:41:
                    ad:fc:92:24:81:b6:1d:07:c8:3c:3f:d8:e0:9a:22:
                    8b:8b:cd:3f:b7:d1:c3:1f:47:4f:09:36:6c:92:ed:
                    4c:42:6f:f7:eb:c0:b1:13:95:49:6d:86:f6:be:d0:
                    ea:7d:db:1e:05:73:b8:69:78:31:ee:12:d1:bf:2d:
                    16:1d:2c:b0:34:98:3c:0c:22:ea:ad:68:9e:17:0a:
                    ef:34:6f:5d:6a:5c:94:5e:36:1f:8b:49:db:cd:d5:
                    29:10:39:22:bb:0e:68:d5:9e:a0:b5:7a:a8:ec:ee:
                    3f:2f
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha256WithRSAEncryption
         4f:cd:e0:a4:00:5d:ec:76:ca:e9:62:b0:a2:c8:7f:8f:75:2d:
         8c:72:bf:47:17:b8:06:f2:99:aa:8f:b1:8d:8d:20:28:1e:7d:
         63:71:79:a6:98:bf:d7:63:02:b1:c1:35:8d:65:57:1a:0b:c7:
         13:8d:8d:27:fe:5f:72:88:83:9c:4a:d1:a8:d6:77:a4:11:58:
         23:d0:af:9b:37:5e:45:ed:47:b4:5c:40:4a:3c:42:01:a0:69:
         b7:da:7c:eb:6d:34:88:07:e0:6e:42:c0:fc:72:58:e0:2a:e1:
         5a:30:53:db:2b:70:7c:c3:4a:60:63:56:bc:94:52:b9:47:c6:
         9a:d2:90:81:12:2f:f2:a5:a8:10:8f:36:c5:ae:57:f6:ad:3d:
         f7:74:35:f5:57:1a:ae:cb:bc:3c:2f:33:8c:d0:40:63:a4:89:
         fd:56:f6:71:ab:b2:ce:d0:f0:6c:61:37:d7:f6:3a:c0:ff:6a:
         fa:86:af:2e:c5:c2:cb:cc:a6:34:ca:65:f6:5d:3d:ae:08:e6:
         16:57:ed:20:35:b8:3f:90:ed:33:66:06:44:43:13:de:28:7b:
         6b:76:a3:b5:46:f8:6d:31:ee:a2:5d:9d:6c:6d:e9:f1:c9:b0:
         96:1b:d1:da:c5:33:54:06:bc:ae:8e:c6:a8:05:20:e0:62:a8:
         fa:64:dc:58
MD5 Fingerprint=36:E7:3B:D1:60:22:21:29:E1:9B:17:88:E9:79:C6:EF

Далее нам надо открыть Нормальным редактором(Я использовать PSPad) файл C:\Apache22\conf\ssl\1c.rusit.org.cert и скопировать все содержимое в самый низ.

Заголовок я использовал произвольный

RUSIT LTD
======================================

В итоге получилось так:


RUSIT LTD
======================================
MD5 Fingerprint=36:E7:3B:D1:60:22:21:29:E1:9B:17:88:E9:79:C6:EF
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
            b0:3f:aa:66:52:33:a1:45
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=Ru, ST=NN, L=Nizhniy Novgorod, O=rusit LTD, OU=IT, CN=1c.rusit.ru/emailAddress=rusit@ya.ru Validity
            Not Before: Jul 11 18:40:11 2016 GMT
            Not After : Dec 13 18:40:11 2032 GMT
        Subject: C=Ru, ST=NN, L=Nizhniy Novgorod, O=rusit LTD, OU=IT, CN=1c.rusit.ru/emailAddress=rusit@ya.ru
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:be:e6:51:38:a8:3d:ec:38:44:5b:f7:d4:7f:29:
                    7e:08:80:d1:f7:f3:06:14:3e:4b:4f:6e:0b:bc:14:
                    16:2c:0a:bd:fd:ed:11:c9:39:87:af:91:e3:76:6e:
                    09:08:0f:0c:d4:84:02:47:1d:82:0c:b9:b0:34:a0:
                    88:42:8e:37:27:62:d0:09:2b:1c:44:f4:b5:c2:ba:
                    81:b1:33:81:e3:16:9c:7a:8a:ba:2f:5e:9c:74:8c:
                    5c:56:71:96:9b:d6:cd:60:8e:c9:31:ac:d7:86:6c:
                    e3:05:7e:bc:30:b5:87:91:e3:41:2a:31:3a:e8:01:
                    ae:94:19:14:70:c5:8f:6a:79:e3:0c:e4:12:05:42:
                    fb:e9:25:2c:17:05:95:33:c9:13:a7:a1:91:88:41:
                    ad:fc:92:24:81:b6:1d:07:c8:3c:3f:d8:e0:9a:22:
                    8b:8b:cd:3f:b7:d1:c3:1f:47:4f:09:36:6c:92:ed:
                    4c:42:6f:f7:eb:c0:b1:13:95:49:6d:86:f6:be:d0:
                    ea:7d:db:1e:05:73:b8:69:78:31:ee:12:d1:bf:2d:
                    16:1d:2c:b0:34:98:3c:0c:22:ea:ad:68:9e:17:0a:
                    ef:34:6f:5d:6a:5c:94:5e:36:1f:8b:49:db:cd:d5:
                    29:10:39:22:bb:0e:68:d5:9e:a0:b5:7a:a8:ec:ee:
                    3f:2f
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha256WithRSAEncryption
         4f:cd:e0:a4:00:5d:ec:76:ca:e9:62:b0:a2:c8:7f:8f:75:2d:
         8c:72:bf:47:17:b8:06:f2:99:aa:8f:b1:8d:8d:20:28:1e:7d:
         63:71:79:a6:98:bf:d7:63:02:b1:c1:35:8d:65:57:1a:0b:c7:
         13:8d:8d:27:fe:5f:72:88:83:9c:4a:d1:a8:d6:77:a4:11:58:
         23:d0:af:9b:37:5e:45:ed:47:b4:5c:40:4a:3c:42:01:a0:69:
         b7:da:7c:eb:6d:34:88:07:e0:6e:42:c0:fc:72:58:e0:2a:e1:
         5a:30:53:db:2b:70:7c:c3:4a:60:63:56:bc:94:52:b9:47:c6:
         9a:d2:90:81:12:2f:f2:a5:a8:10:8f:36:c5:ae:57:f6:ad:3d:
         f7:74:35:f5:57:1a:ae:cb:bc:3c:2f:33:8c:d0:40:63:a4:89:
         fd:56:f6:71:ab:b2:ce:d0:f0:6c:61:37:d7:f6:3a:c0:ff:6a:
         fa:86:af:2e:c5:c2:cb:cc:a6:34:ca:65:f6:5d:3d:ae:08:e6:
         16:57:ed:20:35:b8:3f:90:ed:33:66:06:44:43:13:de:28:7b:
         6b:76:a3:b5:46:f8:6d:31:ee:a2:5d:9d:6c:6d:e9:f1:c9:b0:
         96:1b:d1:da:c5:33:54:06:bc:ae:8e:c6:a8:05:20:e0:62:a8:
         fa:64:dc:58
-----BEGIN CERTIFICATE-----
MIIDlDCCAnwCCQCwP6pmUjOhRTANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMC
UnUxCzAJBgNVBAgMAk5OMRkwFwYDVQQHDBBOaXpobml5IE5vdmdvcm9kMRMwEQYD
VQQKDApESlJVU1QgTFREMQswCQYDVQQLDAJJVDEVMBMGA1UEAwwMMWMuZGpydXN0
LnJ1MRswGQYJKoZIhvcNAQkBFgxkanJ1c3RAeWEucnUwHhcNMTYwNzExMTg0MDEx
WhcNMzIxMjEzMTg0MDExWjCBizELMAkGA1UEBhMCUnUxCzAJBgNVBAgMAk5OMRkw
FwYDVQQHDBBOaXpobml5IE5vdmdvcm9kMRMwEQYDVQQKDApESlJVU1QgTFREMQsw
CQYDVQQLDAJJVDEVMBMGA1UEAwwMMWMuZGpydXN0LnJ1MRswGQYJKoZIhvcNAQkB
FgxkanJ1c3RAeWEucnUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+
5lE4qD3sOERb99R/KX4IgNH38wYUPktPbgu8FBYsCr397RHJOYevkeN2bgkIDwzU
hAJHHYIMubA0oIhCjjcnYtAJKxxE9LXCuoGxM4HjFpx6irovXpx0jFxWcZab1s1g
jskxrNeGbOMFfrwwtYeR40EqMTroAa6UGRRwxY9qeeMM5BIFQvvpJSwXBZUzyROn
oZGIQa38kiSBth0HyDw/2OCaIouLzT+30cMfR08JNmyS7UxCb/frwLETlUlthva+
0Op92x4Fc7hpeDHuEtG/LRYdLLA0mDwMIuqtaJ4XCu80b11qXJReNh+LSdvN1SkQ
OSK7DmjVnqC1eqjs7j8vAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAE/N4KQAXex2
yulisKLIf491LYxyv0cXuAbymaqPsY2NICgefWNxeaaYv9djArHBNY1lVxoLxxON
jSf+X3KIg5xK0ajWd6QRWCPQr5s3XkXtR7RcQEo8QgGgabfafOttNIgH4G5CwPxy
WOAq4VowU9srcHzDSmBjVryUUrlHxprSkIESL/KlqBCPNsWuV/atPfd0NfVXGq7L
vDwvM4zQQGOkif1W9nGrss7Q8GxhN9f2OsD/avqGry7FwsvMpjTKZfZdPa4I5hZX
7SA1uD+Q7TNmBkRDE94oe2t2o7VG+G0x7qJdnWxt6fHJsJYb0drFM1QGvK6OxqgF
IOBiqPpk3Fg=
-----END CERTIFICATE-----


Далее надо настроить конфигурационный файл apache.  Добавить
Listen 443
LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.8.1784/bin/wsap22.dll"
ServerName localhost:443
# 1c publication UT11
Alias "/UT11" "C:/1C/ApConf/UT11"
<Directory "C:/1C/ApConf/UT11">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C/ApConf/UT11/default.vrd"
</Directory>

# 1c publication
Alias "/BP" "C:/1C/ApConf/BP"
<Directory "C:/1C/ApConf/BP">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C/ApConf/BP/default.vrd"
</Directory>


Делаем apache сервисом в windows

C:\Apache22\bin\httpd.exe -D ssl -k install
Если надо задать нормальное имя сервиса то надо запускать ТАК
C:\Apache22\bin\httpd.exe -D ssl -n apache22ssl -k install

Или воспользоваться подсказками (С какими ключами можно запускать веб сервер)
C:\Apache22\bin\httpd.exe /?

Изменить настройки в дальнейшем можно,так

Запускаем редактор реестра (Пуск-выполнить – regedit), переходим в ветку
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache22

ВНИМАНИЕ

В продакшене связь с 1С терялась через 4 часа использования,нагрузка около 7-10 человек через тонкий клиент. Решается перезапуском сервиса apache2
Если использовать apache без ssl проблем с зависаниями не наблюдается

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *