Настройка Apache для работы 1С через HTTPS (SSL)

Безопасность для многих всегда идет на первом месте, многие интернет-гиганты, типа Google даже добавляют в свои браузеры предупреждения, что соединение не безопасно, если на сайте не используется SSL-сертификат.
1С:Предприятие тоже может работать по протоколу HTTPS.
Мы предлагаем статью-инструкцию, как настроить HTTPS в Apache таким образом, чтобы 1С:Предприятие работало без проблем через SSL.

Установка Apache

Ну что же начнем…
Для начала установим Apache. Рассмотрим это для 1С:Предприятие x86-64 и для Windows.

1. Идем на сайт https://www.anindya.com/ и качаем файл apache_2.4.23-x64-openssl-1.0.2h.msi (цифры на момент скачивания могут быть другими).

2. Устанавливаем Apache.

Реквизиты в полях Network Domain, Server Name и Administartor Email произвольные.

Жмем Next > Next > Next. Выбираем Typical.

3. Проверим, что сайт доступен по localhost. Откройте браузер и введите localhost в адресную строку. Должна открыться страница с текстом «It Works!«

Настройка Apache по SSL

4. Отлично. Apache установлен, теперь давайте настроем его работу по SSL.

Находим в папке c:\Program Files\Apache Software Foundation\Apache2.4\conf файл httpd.conf

Дописываем строку Listen 443
Это стандартный порт HTTPS. Заставляем Apache слушать и этот порт тоже. Если нам не нужен стандартный 80-ый порт и мы не планируем его использовать, то строку Listen 80 можно закомментировать добавив символ # (решетки) в начале строки. Так же имейте ввиду, что при изменении файлов в папке Program Files потребуется открытие файла в режиме администратора.

Раскомментируем в файле httpd. conf строчку
#LoadModule ssl_module modules/mod_ssl.so
Убрав символ #. Т.е. строка должна стать такой:
LoadModule ssl_module modules/mod_ssl.so

4. В конце файла httpd.conf изменяем

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

</IfModule>

на:

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

Записываем файл httpd.conf

5. Из каталога bin установленной папки с Apache cкопируем файлы ssleay32.dll и libeay32.dll в C:\Windows\System32. Так же скопируем файл openssl.cnf из папки c:\Program Files\Apache Software Foundation\Apache2.4\conf\ в папку c:\Program Files\Apache Software Foundation\Apache2.

4\bin\.

6. Запустим редактор реестра regedit (Пуск > Выполнить ввести текст regedit и нажать Enter) откроется окно реестра в нем найдем ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.4
В этой ветке найдем переменную ImagePath и два раза кликнем на ней.

Добавим ключ запуска -D ssl

7. Добавим SSL-сертификаты для домена. Тут есть варианты…

7.1. Если у Вас уже есть SSL-сертификаты для домена, то создайте папку ssl в папке C:\Program Files\Apache Software Foundation\Apache2.4\conf и переместите их туда (файлы *.key и *.cert). Идем на шаг 8.

7.2. Если у Вас нет SSL-сертификатов, то вы можете их сгенерировать самостоятельно.

7.2.1. Открываем командную строку в режиме администратора и переходим в папку bin Apache. Вводим команду:

cd «C:\Program Files\Apache Software Foundation\Apache2.4\bin»

7.2.2. Далее вводим:

openssl req -config openssl. cnf -new -out ssl.csr

Идем по шагам в командной строке и заполняем необходимые поля. То, что вы введете не принципиально. Самое главное на этом этапе надо запомнить пароль (когда спросит pass phrase)

7.2.3. Выполним:

openssl rsa -in privkey.pem -out ssl.key


Спросит пароль, который вы вводили ранее.

7.2.4. Затем:

openssl x509 -in ssl.csr -out ssl.cert -req -signkey ssl.key -days 3000

days — это срок действия сертификата в днях.

7.2.5. Ну и наконец:

openssl x509 -in ssl.cert -out ssl.der.crt -outform DER

7.2.6. Создадим папку ssl в C:\Program Files\Apache Software Foundation\Apache2.4\conf и переместим из папки bin файлы ssl.key и ssl.cert (а вообще можно все сразу туда скопировать, что было получено на шагах 7.2.1. — 7.2.5) из C:\Program Files\Apache Software Foundation\Apache2.4\bin в C:\Program Files\Apache Software Foundation\Apache2.4\conf\ssl.

8. Снова открываем файл

httpd. conf из папки C:\Program Files\Apache Software Foundation\Apache2.4\conf и добавляем секцию VirtualHost в самый конец файла httpd.conf:

<VirtualHost demo.soft.ru:443>
SSLEngine On
SSLCertificateFile conf/ssl/ssl.cert
SSLCertificateKeyFile conf/ssl/ssl.key
</VirtualHost>

Вместо адреса demo.soft.ru замените на свой сайт или IP-адрес, а можно вообще поставить звездочку (*) и будет *:443 (это означает, что сработает для всех запросов). Ну и если у вас есть свои ключи, и вы их не генерировали сами, то переименуйте ssl.cert и ssl.key

9. Перезапустим Apache. Открываем Monitor в правом нижнем углу, щелкнем по иконке и нажимаем restart. Если все хорошо, то Apache запустится без ошибок и появится зеленый значок.

10. Пробуем открыть сайт через HTTPS. В нашем случае можно и так https://localhost и вот так https://demo.soft.ru:

Обратите внимание на то, что сертификат самоподписанный и службы типа антивируса Касперского понимают, что дело не очень. .. Это нормально, так как ваш сертификат не был изготовлен корневыми центрами сертификации. Но если вы захотите использовать https внутри организации, то почему бы и нет?

11. Теперь попробуем запустить 1С. В браузере открывается:

Теперь попробуем открыть базу через тонкий клиент и если мы использовали самодписанный сертификат то тут нас ждет разочарование:

Ошибка HTTP при обращении к серверу … Удаленный узел не прошел проверку.

12. Дело в том, что сервер 1С содержит собственный контроль достоверности HTTPS-соединений и корневых центров.
Необходимо открыть папку сервера 1С:Предприятия c:\Program Files\1cv8\8.3.15.1747\bin\ и в ней найти файл cacert.pem
Он отвечает как раз за эти центры сертификации.

Открываем командную строку и в ней выполняем команду:

openssl x509 -inform der -in ssl.der.crt -out ssl.pem -text -fingerprint -md5

После выполнения команды на экране Вы увидите Fingerprint. Скопируйте его. Это будет строка вида:

MD5 Fingerprint=64:5C:11:03:46:F1:22:9A:5B:C3:DD:AA:CC:EE:FF:A3 

Откройте файл cacert.pem в папка 1С, перейдите в конец файла и с этой строки начинайте добавление своего сертификата в файл cacert.pem. После строки контрольной суммы сертификата, нужно добавить в файл cacert.pem содержимое файла, в который Вы экспортировали сертификат.

После этого запуск тонкого клиента будет работать без ошибок.

Если же и после этого есть ошибки, то можно вообще заставить клиент 1С не проверять сертификат. Для этого необходимо отредактировать информационную базу:


Далее:


Ну и наконец заветное окно:


Пробуем запустить и…


Все замечательно работает по https.

Отлично. Вы все настроили!

Windows server + Apache + SSL от Let’s Encrypt

от Bogdan Kuhar

Краткое содержание:

  • Cкачаем консольную утилиту «Win-acme».
  • Получаем SSL сертификат:
  • Проверка полученных сертификатов:
  • Подключаем сертификат от Let’s Encrypt

Приветствую, Коллега!

Решил написать подробную статью о том, как получить и установить  SSL сертификат на веб сервере Apache, который «крутится» у нас нас Windows server 2019   

Причем сделаем мы это бесплатно, используя сертификат от Let’s Encrypt!

Работу будем выполнять на Windows Server 2019. (Так как на Linux инструкций полно!).

Предполагается, что веб страница у Вас уже опубликована на веб сервере, «проброшены» порты 80 и 443 и внешнее доменное имя «привязано» к вашему статическому IP!

К слову, все подготовительные работы, как и другие подробности на данную тему, можно посмотреть здесь >>

Да, если VPN нет возможности «поднять», или есть опасения, что трафик будет перехвачен, тогда действительно, стоит зашифровать подключение между «клиентом» и «сервером» используя протокол https!

 

И так начинаем!

Cкачаем консольную утилиту «Win-acme».

При помощи нее мы и получим SSL сертификат, что нужен нам для организации «шифрованного соединения»,  простыми словами https!

https://www.win-acme.com/

После того как утилита «Win-acme» уже будет находится у нас на диске, мы приступим к дальнейшей подготовке.

Создадим себе каталог на диске, где установлен веб сервер Apache (У меня это директория C:\APACHE\Cert)

 

В этой папке «Cert» мы и будем держать сертификаты для веб сервера Apache.

Теперь запускаем утилиту «Win-acme» (От имени Администратора) для создания этих сертификатов в директории «Cert».

Получаем SSL сертификат:

Придерживаясь инструкций ниже, мы получим все необходимое для организации https на сайте.

Первым пунктом выбираем «Create сertificate (full options)» поставив букву M и кликнув Enter

Затем пишем 2 — «Manual input» — Enter

Укажем имя домена (реального домена, так как будет проверка).

У меня это web.kuharbogdan.com

Далее просто давим «Enter»

На следующем шаге — 2 «[http-01] Serve verification files from memory»

 

Выбираем RSA key, пункт также 2

Сертификаты у нас в PEM формате, и мы также выбираем соответствующий пункт: PEM encoded files (Apache, nginx, etc.)

Выбор 2

На следующем шаге, укажем расположение папки «Cert», куда следует записать сертификаты.

 

Давим «Enter»

И на этом наша работа почти закончена!

 

Выбираем пункт 5 — (No additional) store steps, так как нам больше ничего не требуется от утилиты!

И затем пункт 4 (Так как программа предлагает нам настроить «перевыпуск» сертификата и прочие).

Не забываем, что сертификат от Let’s Encrypt действует 3 мес, потом его повторно надо получить (Перевыпустить).

На следующем шаге, также «Отказ» пишем N + Enter

И наконец Q — Выход

 

Проверка полученных сертификатов:

Откроем наш каталог «Cert»

Супер! Все сертификаты у нас! Нам осталось только их подключить + внести пару правок в «конфиги» веб сервера Apache!

Подключаем сертификат от Let’s Encrypt

 

Открываем C:\APACHE\conf\httpd. conf

И первое что мы сделаем, так это укажем порт для SSL — наш 443 TCP/IP вместо 80.

Listen 443

 

После чего, раскомментируем модуль LoadModule ssl_module modules/mod_ssl.so

А также раскомментируем конфиг, где будут настройки SSL

Include C:/APACHE/conf/extra/httpd-ssl.conf

На этом мы прощаемся с httpd.conf, сохраняем файл и переходим к редактированию httpd-ssl.conf

C:\APACHE\conf\extra\httpd-ssl.conf

Первым делом, закомментируем 443 порт, мы его указали в httpd.conf

Также закомментируем пути к логам (Если вы в «продакшн» выполняете данную настройку, тогда рекомендую создать файлы для записи логов и указать пути к ним!)

Мы вести запись ошибок веб сервера Apache не будем, (Для теста этого достаточно!).

Комментируем #SSLSessionCache «shmcb:${SRVROOT}/logs/ssl_scache(512000)»

Комментируем <VirtualHost _default_:443>

И блок сразу ниже, также:

 

Продолжение статьи доступно только зарегистрированным пользователям!

Зарегистрироваться / Войти

 

С уважением, Богдан.

Bogdan Kuhar

Автор: Богдан Кухар
Full Stack Developer/coach
[email protected]

Руководство по установке SSL/TLS-сертификата: Apache для Windows


Назначение: SSL/TLS-сертификат руководство по установке
Для сервера Apache2 (в Windows)

Перейти к установке Сертификата Требуется помощь4 00005

900 a Подписание запроса (CSR) с этим сервером? CSR для Apache2 для Windows создаются с использованием OpenSSL. См. нашу статью здесь .

Если вы являетесь пользователем учетной записи ECS Enterprise, вы можете использовать инструмент ACME Services for Entrust для автоматического создания CSR.

Действия по установке SSL-сертификата на веб-сервере Windows Apache.

Перейдите к шагам

Прежде чем начать…

  • Перед внесением каких-либо изменений обязательно сделайте резервную копию файлов конфигурации Apache. Если вы заменяете существующий сертификат, не удаляйте существующий сертификат или файлы закрытого ключа, если вам нужно вернуться к предыдущей конфигурации.
  • Никогда не делитесь файлами личных ключей.
  • Если вы планируете использовать один и тот же сертификат на нескольких серверах, всегда передавайте закрытый ключ безопасным способом (электронная почта не считается безопасным способом передачи).
  • Рекомендуется убедиться, что у вас есть актуальные и обновленные шифры и протоколы, чтобы обеспечить максимальную безопасность при развертывании нового закрытого ключа и сертификата сервера.
  • Убедитесь, что вы запустили SSL Server Test в конце процесса установки, чтобы проверить конфигурацию вашего сертификата на соответствие рекомендациям SSL/TLS.
  • Для получения дополнительной информации о рекомендациях SSL/TLS щелкните здесь .

Установка состоит из четырех частей
1) Скопируйте файлы сертификатов на свой сервер
2) Настройте сервер Apache так, чтобы он указывал на файлы сертификатов
3) Проверьте, что конфигурация прошла успешно
4) Перезапустите сервер Apache

Часть 1 из 4: Скопируйте файлы сертификатов в ваш сервер

1. Загрузите файлы сертификатов. Вы получите ZIP-файл, содержащий:

  • ChainBundle1.crt
  • ServerCertificate.crt

Software Foundation\Apache2.2\conf»).

Часть 2 из 4: Настройте сервер Apache так, чтобы он указывал на файлы сертификатов

1. Чтобы Apache работал с SSL/TLS, необходимо изменить файлы конфигурации и перезапустить сервер th. Обратите внимание, что пользователи Vista должны отключить контроль учетных записей, чтобы сохранить новые файлы конфигурации.

В файле httpd.conf измените следующие строки, удалив начальный знак #, чтобы раскомментировать строку:

#Loadmodule ssl_module modules/mod_ssl.so
и
#Include conf/extra/httpd-default.conf

Таким образом, эти две строки теперь должны выглядеть так: 4: Проверка конфигурации прошла успешно

Проверьте конфигурацию Apache с помощью следующей команды:
apachectl configtest

Часть 4 из 4. Перезапустите сервер Apache

Перезапустите сервер Apache, выполнив следующую команду:
sudo apachectl restart

Теперь ваш сертификат SSL/TLS должен быть установлен. Если у вас есть какие-либо вопросы или проблемы, обратитесь в отдел поддержки Entrust Certificate Services по номеру для получения дополнительной помощи.

Часы работы:
С воскресенья с 20:00 по восточноевропейскому времени до пятницы с 20:00 по восточному времени
Северная Америка (звонок бесплатный): 1-866-267-9297
За пределами Северной Америки: 1-613-270-2680 ( или см. список ниже) 
ПРИМЕЧАНИЕ. Очень важно, чтобы международные абоненты набирали формат UITF точно так, как указано. Не набирайте лишнюю «1» перед «800», иначе ваш звонок не будет принят в качестве бесплатного звонка UITF.
 

-30114 0900 elecom Финляндия)
00 — 800-3687-7863 (Финнет)
5 Италия
Страна Номер
Австралия 0011 — 800-3687-7863
9180-791-517-5 13
Австрия 00 — 800-3687-7863
Бельгия 00 — 800-3687-7863
Дания 00 — 800-3687-7863
Финляндия
Франция 00 — 800-3687-7863
Германия 00 — 800-3687-7863
6-70 Гонконг8 01145 01115 0114 7863 (Голос)
002 — 800-3687- 7863 (факс)
Ирландия 00 — 800-3687-7863
Израиль 014 — 800-3687-7863 9111485
00 — 800-3687-7863
Япония 001 — 800-3687-7863 (KDD)
004 — 800-3687-7863 (ITJ)
0061 — 800-3687-7863 (IDC)
Корея 001 — 800-3687-7863 (Korea Telecom)
002 — 800-3687-799053 (Dacom)
3 14 Малайзия
00 — 800 -3687-7863
Нидерланды 00 — 800-3687-7863
Новая Зеландия 00 — 800-3687-7863 1 801103
15
Норвегия 00 — 800-3687- 7863
Сингапур 001 — 800-3687-7863
Испания 00 — 800-3687-7863
Швеция 00 — 800-3687-7863 (Telia)

3 086 — 806
Швейцария 00 — 800-3687-7863
Тайвань 00 — 800-3687-7863
Соединенное Королевство 00 — 800-36 9011 8087-70063 2 78
+44 (0) 118 953 3088

Как настроить Apache SSL для Windows | Малый бизнес

Бен Ричард

Один из наиболее часто используемых веб-серверов, Apache Hypertext Transport Protocol Server, был впервые выпущен для публики в 1995 году. Проект Apache развивался на протяжении многих лет, но он по-прежнему стремится оставаться бесплатным — здорово новости для любого бизнеса, который хочет установить веб-сервер. С небольшим количеством времени и правильными командами ваша компания может разместить свой собственный веб-сайт и настроить OpenSSL для безопасной связи с использованием технологии Secure Sockets Layer для зашифрованных транзакций в Интернете.

Проблемы с openssl.cnf

  1. Перейдите в каталог конфигурации Apache, «C:\Program Files\Apache Software Foundation\Apache<версия>\conf\» и проверьте файл openssl.cnf. Замените правильный номер версии на «<версия>». Windows могла повторно связать расширение .cnf со SpeedDial или другой программой.

  2. Перейдите в «Панель управления», затем «Свойства папки».

  3. Нажмите на вкладку «Типы файлов» и просмотрите список до ассоциации .cnf.

  4. Нажмите «Изменить…», чтобы связать файл с Блокнотом или другим текстовым редактором.

Ключи и конфигурация

  1. Откройте командную строку. Нажмите клавишу Windows и «R» одновременно, чтобы открыть диалоговое окно «Выполнить». Введите «cmd» в текстовое поле и нажмите «Enter», чтобы запустить командную строку Windows.

  2. Введите «cd C:\Program Files\Apache Software Foundation\Apache<версия>\bin» в командной строке, заменив «<версия>» номером версии, чтобы перейти в каталог bin.

  3. Введите «set OPENSSL_CONF=C:\Program Files\Apache Software Foundation\Apache<версия>\conf\openssl.cnf», чтобы определить расположение файла openssl.cnf. Возможно, вам придется настроить команду, чтобы она соответствовала вашей индивидуальной установке сервера.

  4. Введите ‘openssl req -config «C:\Program Files\Apache Software Foundation\Apache2.2\conf\openssl.cnf» -new -out mysite.csr -keyout mysite.pem’ и следуйте инструкциям для создания ваш сертификат. Парольная фраза PEM — это пароль вашего закрытого ключа; запишите его и храните в надежном месте.

    Обратите внимание, что команда создает ключи в текущем рабочем каталоге терминала, которым должен быть /bin.

  5. Введите «openssl rsa -in mysite.pem -out mysite.key», чтобы создать незащищенный ключ для сервера Apache.

  6. Введите «openssl x509 -in mysite.csr -out mysite.cert -req -signkey mysite.key -days 365» для создания сертификата x509.

  7. Проверьте файл httpd.conf, по умолчанию в «C:\Program Files\Apache Software Foundation\Apache<версия>\conf\» и удалите хеш-теги (#) в следующих строках: LoadModule ssl_module modules /mod_ssl.so Включить conf/extra/httpd-ssl.conf

  8. Откройте файл httpd-ssl.conf в «C:\Program Files\Apache Software Foundation\Apache<версия>\conf\extra\» и обновите эти настройки в соответствии с вашей установкой:

    VirtualHost по умолчанию : 443 ServerAdmin DocumentRoot ServerName ErrorLog CustomLog SSLCertificateFile SSLCertificateKeyFile

  9. Перезапустите сервер Apache.

    Добавить комментарий

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