Настройка 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.
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. Выполним:
Спросит пароль, который вы вводили ранее.
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. Снова открываем файл
<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.
Отлично. Вы все настроили!
19.
Автор: Барилко Виталий
1С, ssl, apache, настройка, https
Настройка Apache для работы 1С через HTTPS (SSL)
SoftOnIT.RU https://softonit.ru/articles/1c/apache-ssl-1c/ Безопасность для многих всегда идет на первом месте, многие интернет-гиганты, типа Google даже добавляют в … 2019-11-19T00:00:00+03:00 2020-09-08T12:47:23+03:00
Настройка Apache для работы 1С через HTTPS (SSL)https://softonit.ru
Настройка HTTPS в Apache на Windows 8.1 » Самоучка
1
Представленная статья написана, как продолжение Установка веб-сервера Apache + PHP + MySQL на Windows 8.1 , соответственно все, приведенные там настройки остаются в силе, мы лишь дополним наш веб-сервер защищенным
Для начала переходим в C:\server\Apache24\conf и открываем для редактирования файл конфигурации Apache – «httpd. conf»:
Под строкой Listen 172.16.1.3:80
Добавляем строчку:
Listen 172.16.1.3:443
Находим и раскоментируем строчку:
LoadModule ssl_module modules/mod_ssl.so
Далее идем в конец фала и видим там блок:
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Приводим его к следующему виду:
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLMutex default
SSLSessionCache none
</IfModule>
Сохраните изменения и закройте файл «httpd.conf»
Теперь откройте файл «C:\server\Apache24\conf\extra\httpd-vhosts.conf» и произведите в нем следующие изменения:
Коментируем созданный нами в прошлой статье блок:
<VirtualHost local.malwselennaia.ru:80>
DocumentRoot «C:/sait/local.malwselennaia.ru/www»
ServerName local.malwselennaia.ru
ErrorLog «C:/sait/local. malwselennaia.ru/error.log»
CustomLog «C:/sait/local.malwselennaia.ru/access.log» common
</VirtualHost>
И вставляем следующее:
<VirtualHost local.malwselennaia.ru:443>
SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
DocumentRoot «C:/sait/local.malwselennaia.ru/www»
ServerName local.malwselennaia.ru
ErrorLog «C:/sait/local.malwselennaia.ru/error.log»
CustomLog «C:/sait/local.malwselennaia.ru/access.log» common
</VirtualHost>
Так же добавим блок для перенаправления, если кто-то придёт на сайт по протоколу HTTP:
<VirtualHost local.malwselennaia.ru:80>
ServerName local.malwselennaia.ru
Redirect permanent / https://local.malwselennaia.ru
</VirtualHost>
В итоге должно получится как-то так:
NameVirtualHost 172.16.1.3:80
<VirtualHost local.malwselennaia.ru:80>
ServerName local. malwselennaia.ru
Redirect permanent / https://local.malwselennaia.ru
</VirtualHost>
# <VirtualHost local.malwselennaia.ru:80>
# DocumentRoot «C:/sait/local.malwselennaia.ru/www»
# ServerName local.malwselennaia.ru
# ErrorLog «C:/sait/local.malwselennaia.ru/error.log»
# CustomLog «C:/sait/local.malwselennaia.ru/access.log» common
# </VirtualHost>
<VirtualHost local.malwselennaia.ru:443>
SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
DocumentRoot «C:/sait/local.malwselennaia.ru/www»
ServerName local.malwselennaia.ru
ErrorLog «C:/sait/local.malwselennaia.ru/error.log»
CustomLog «C:/sait/local.malwselennaia.ru/access.log» common
</VirtualHost>
Сохраните изменения и закройте файл «httpd-vhosts.conf»
В данном примере «local.malwselennaia.ru»- имя моего сайта, у себя вставляете свои данные.
DocumentRoot «C:/sait/local.malwselennaia.ru/www»- директория, в которой находится скрипт сайта.
ServerName local.malwselennaia.ru- имя, которое вводим в браузере.
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key-директория, где лежит сертификат.
Далее необходимо создать самоподписанный сертификат и хотя браузеры начнут ругаться, что такой сертификат не является доверенным, но свою задачу выполнять он всё таки будет. И что немаловажно — такой сертификат не будет стоить ни копейки, в отличии от сертификатов, подписанных компаниями-сертификаторами.
Копируем файлик openssl.cnf из каталога C:\server\Apache24\conf в каталог C:\server\Apache24\bin .
Создаем сертификат для нашего сервера.
Для этого заходим в каталог C:\server\Apache24\bin и открываем командную строку от имени администратора.
Вводим команду:
openssl
Видим ответ:
OpenSSL>
Теперь вводим следующее:
req -config openssl. cnf -new -out my-server.csr
Видим ответ с предложением ввести пароль:
Вводим свой пароль и видим предложение ввести пароль еще раз:
Теперь необходимо ввести название страны (2 буквы кода):
Далее нужно ввести Штат или Провинция (необязательный параметр, я оставлю пустым):
Теперь название местности (оставлю пусто):
Название организации (опять пропущу):
Название Подразделения (оставлю пусто):
Дошли до: «Common Name (e.g. server FQDN or YOUR name) []:» Сдесь нужно прописать свое доменное имя (название сайта, в моем случае это local.malwselennaia.ru):
Вводим почту админа:
Вводим пароль:
Вводим необязательное название компании (оставлю пусто):
После этого в каталоге C:\server\Apache24\bin образуется файлик my-server. csr
Далее последовательно даем команды:
rsa -in privkey.pem -out my-server.key
Видим ответ с предложением ввести пароль:
Вводим пароль, получаем ответ:
Вводим команду:
x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365
Ответ:
Вводим команду:
x509 -in my-server.cert -out my-server.der.crt -outform DER
Получаем ответ:
Создаем каталог ssl в каталоге C:\server\Apache24\conf и перемещаем туда файлики my-server.key и my-server.cert из каталога C:\server\Apache24\bin .
Перезапускаем Apache.
Вот собственно и все, проверяем результат:
Вводим в браузере:
http://local.malwselennaia.ru/
Получаем вот такой ответ:
Жмем «продолжить открытие веб-сайта»:
Как видим в адресной строке браузера , нас перенаправили уже по протоколу https на страницу входа.
Следовательно все прошло успешно.
Apache SSL: как настроить SSL-сертификат для сервера Apache
Защищенное соединение между веб-браузером и сервером – гарантия того, что клиенты могут совершать безопасные транзакции, не опасаясь за кражу своих данных. Идеальный способ создать такое соединение – это воспользоваться связкой из Apache 2 (лидера в области серверного программного обеспечения для Linux) и SSL (протокола безопасной связи). В данной статье мы покажем вам, как защитить соединение между сервером Apache и пользовательским браузером c помощью SSL-сертификата.
SSL – это протокол для безопасной передачи кодированных данных между веб-браузером и веб-сервером. В большинстве случаев процесс аутентификации происходит только на стороне сервера, т.е. клиент видит, что это именно тот сервер, который был заявлен изначально. Как только соединение будет установлено, оно автоматически станет защищенным, поскольку доступ к ключевому материалу будет только у клиента и сервера, и ни у кого другого. Обычно аутентификация клиента в таком случае не требуется, однако в некоторых случаях она все же реализуется при помощи клиентских SSL-сертификатов.
Установка SSL для Apache
Установка SSL для Apache достаточно проста, в ней можно выделить несколько важных шагов. Первый шаг – это получение сертификата. Вы всегда можете приобрести один из следующих SSL-сертификатов на сайте ЛидерТелеком:
- EssentialSSL – один из самых недорогих SSL-сертификатов, который предполагает только проверку по домену.
- InstantSSL – SSL-сертификат, подтверждающий существование той или иной организации.
- EV SSL – SSL-сертификат с расширенной проверкой организации, позволяющий добиться зеленой строки в браузере и максимального доверия со стороны клиентов, а также обеспечивает высочайшую надежность.
Вне зависимости от того, какой сертификат вы выбрали для себя, вам понадобится пройти следующие шаги для его установки на сервер Apache.
После выпуска сертификата вам понадобится провести настройку Apache. Процесс настройки Apache для SSL следующий:
- Сохраняем основной и промежуточный сертификат в отдельную папку на сервере вместе с приватным ключом.
- Открываем конфигурационный файл Apache в текстовом редакторе. Конфигурационные файлы Apache обычно хранятся в /etc/httpd/ или /etc/apache2/. Основной конфигурационный файл обычно называется httpd.conf или apache2.conf. В большинстве случаев блоки <VirtualHost> будут находиться в самом низу файла httpd.conf. Иногда блоки <VirtualHost> могут располагаться в отдельных файлах в каталогах /etc/httpd/vhosts.d/ или /etc/httpd/sites/, либо в файле ssl.conf. Найти место, где располагается SSL-конфигурация в дистрибутивах Linux, можно с помощью grep:
grep -i -r «SSLCertificateFile» /etc/httpd/
В данном случае «/etc/httpd/» – это базовая директория в вашей сборке Apache.
- Если вы хотите, чтобы ваш сайт был доступен как через безопасное (https), так и через небезопасное (http) соединение, то в таком случае вам нужно будет создать виртуальный хост для каждого типа соединения. Скопируйте уже существующий виртуальный хост для http-соединения и смените порт с 80 на 443.
- Добавьте к файлу следующие строки (выделены жирным):
<VirtualHost 192.168.0.1:443>
DocumentRoot /var/www/leader_site
ServerName www.leader_site.com
SSLEngine on
SSLCertificateFile /etc/ssl/crt/bazov_cert.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
SSLCertificateChainFile /etc/ssl/crt/promejut_cert.crt
</VirtualHost>
- Измените имена файлов и путей, чтобы они соответствовали вашим файлам сертификата:
- SSLCertificateFile – файл основного сертификата для вашего домена.
- SSLCertificateKeyFile – файл с ключом, сгенерированный в процессе создания CSR.
- SSLCertificateChainFile – файл промежуточного сертификата (если он имеется), предоставленный вашим центром сертификации. Если эта директива не работает, попробуйте вместо нее использовать SSLCACertificateFile.
- Сохраняем изменения и тестируем конфигурацию Apache. Лучше всего заранее протестировать конфигурацию на наличие различных синтаксических ошибок, иначе Apache просто не запустится. Для тестирования выполняем следующую команду:
apachectl configtest
- Делаем рестарт Apache с помощью команды:
apachectl restart
Или останавливаем и вновь запускаем сервер:
apachectl stop
apachectl start
Если вы столкнулись с проблемами при установке SSL-соединения и вы не в силах самостоятельно устранить их, вы всегда можете связаться с нашими специалистами по представленным на сайте контактам. Мы поможем вам настроить SSL на Apache без лишних проблем.
Руководство по установке SSL/TLS-сертификата: Apache для Windows
Назначение: SSL/TLS-сертификат руководство по установке
Для сервера Apache2 (в Windows)
Перейти к установке Сертификата Требуется помощь4 00005
Если вы являетесь пользователем учетной записи 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.
Country | Number | ||||
Australia | 0011 — 800-3687-7863 1-800-767-513 | ||||
Austria | 00 — 800-3687-7863 | ||||
Belgium | 00 — 800-3687-7863 | ||||
Denmark | 00 — 800-3687-7863 | ||||
Finland | 990 — 800-3687-7863 (Telecom Finland) 00 — 800-3687-7863 (Финнет) | ||||
France | 00 — 800-3687-7863 | ||||
Germany | 00 — 800-3687-7863 | ||||
Hong Kong | 001 — 800-3687-7863 (Voice) 002 — 800-3687- 7863 (Fax) | ||||
Ireland | 00 — 800-3687-7863 | ||||
Israel | 014 — 800-3687-7863 | ||||
Italy | 00 — 800-3687-7863 | ||||
Япония | 001 — 800-3687-7863 (KDD) 004 — 800-3687-7863 (ITJ) 0061 — 800-3687-7863 (IDC) | ||||
Korea | 001 — 800-3687-7863 (Korea Telecom) 002 — 800-3687-7863 (Dacom) | ||||
Malaysia | 00 — 800 -3687-7863 | ||||
Netherlands | 00 — 800-3687-7863 | ||||
New Zealand | 00 — 800-3687-7863 0800-4413101 | ||||
Norway | 00 — 800-3687- 7863 | ||||
Сингапур | 001 — 800-3687-7863 | ||||
Испания | 00-800-3687-7863 | ||||
Шведена | 00-800-3687-7863 (Телия) 00-800-3687-7863 (Телея) 00-800-3687-7863 (Телея). -800-3687-7863 | ||||
Taiwan | 00-800-3687-7863 | ||||
United Kingdom | 00-800-3687-7863 0115 | 00-800-3687-7863 00111478.7018 | 00-800-3687-7863 90800 121114 6718 | 00-800-3687-7863 90800 121114. |
Включить поддержку HTTPS с Apache
Перед выполнением команд, показанных на этой странице, вы должны загрузить среду стека Bitnami, выполнив сценарий installdir/use_APPNAME (Linux и MacOS) или щелкнув ярлык в меню «Пуск» в разделе «Пуск -> Bitnami APPNAME Stack -> Консоль приложения» (Windows). На виртуальных машинах OS X каталог установки — /opt/bitnami , и пользователи виртуальных машин OS X могут нажать кнопку «Открыть терминал» для запуска команд. Узнайте больше о среде стека Bitnami и виртуальных машинах OS X.
СОВЕТ. Чтобы быстро начать работу с HTTPS и SSL с помощью собственного установщика Linux, следуйте этим инструкциям для автоматической настройки SSL-сертификата Let’s Encrypt.
ПРИМЕЧАНИЕ. Разделы «Подход А», упомянутые ниже, не относятся к собственным установщикам Bitnami. Пользователям собственных установщиков Bitnami следует обращаться только к разделам «Подход Б».
ОбразыПРИМЕЧАНИЕ. В приведенных ниже шагах предполагается, что вы используете имя личного домена и что вы уже настроили имя личного домена, чтобы оно указывало на ваш облачный сервер.
Bitnami поставляются с предварительно настроенной поддержкой SSL и фиктивным сертификатом. Хотя этот фиктивный сертификат подходит для целей тестирования и разработки, обычно вы захотите использовать действующий сертификат SSL для производственного использования. Вы можете сгенерировать его самостоятельно (как описано здесь) или приобрести его в коммерческом центре сертификации.
ВАЖНО: из соображений безопасности никогда не публикуйте и не разглашайте закрытый ключ SSL вашего сервера на общедоступном форуме.
После получения сертификата и файлов ключей сертификата вам потребуется обновить сервер, чтобы использовать их.
Подход A: Установка Bitnami с использованием системных пакетов
Чтобы активировать поддержку SSL, выполните следующие действия:
Используйте приведенную ниже таблицу, чтобы определить правильное расположение сертификата и файлов конфигурации.
Переменная Значение URL текущего приложения https://[пользовательский домен]/ Пример: https://мой-домен.com/ или https://мой-домен.com/имя_приложения Файл виртуального хоста приложения installdir/apache2/conf/vhosts/APPNAME-https-vhost.conf Файл конфигурации Apache каталог установки/apache2/conf/bitnami/bitnami. conf Файл сертификата каталог установки/apache2/conf/bitnami/certs/server.crt Ключевой файл сертификата installdir/apache2/conf/bitnami/certs/server.key Скопируйте сертификат SSL и файл ключа сертификата в указанные места.
ПРИМЕЧАНИЕ. Если вы используете разные имена для файлов сертификатов и ключей, вам следует перенастроить директивы SSLCertificateFile и SSLCertificateKeyFile в соответствующем файле конфигурации Apache, чтобы они отражали правильные имена файлов.
Если ваш центр сертификации также предоставил вам пакет центра сертификации (ЦС) в кодировке PEM, вы должны скопировать его в правильное место в предыдущей таблице.
Проверьте, существует ли файл виртуального хоста приложения, указанный в следующей таблице, и измените его, включив в него дополнительную директиву после директивы SSLCertificateKeyFile . Если файл виртуального хоста приложения не существует, вместо этого измените файл конфигурации Apache.
Переменная Значение Файл виртуального хоста приложения installdir/apache2/conf/vhosts/APPNAME-https-vhost.conf Файл конфигурации Apache каталог установки/apache2/conf/bitnami/bitnami.conf Директива, включающая SSLCACertificateFile «installdir/apache2/conf/bitnami/certs/server-ca.crt» ПРИМЕЧАНИЕ. Если вы используете другое имя для пакета сертификатов ЦС, вам следует перенастроить SSLCertificateChainFile или SSLCACertificateFile в соответствующем файле конфигурации Apache, чтобы отразить правильное имя файла.
После того, как вы скопировали все файлы сертификатов сервера, вы можете сделать их доступными для чтения пользователю root только с помощью следующих команд:
$ sudo chown root: root installdir/apache2/conf/bitnami/certs/server* $ sudo chmod 600 installdir/apache2/conf/bitnami/certs/server*
Откройте порт 443 в брандмауэре сервера. Дополнительные сведения см. в разделе часто задаваемых вопросов для Windows, Linux и macOS.
Перезапустите сервер Apache.
Теперь вы сможете получить доступ к своему приложению, используя URL-адрес HTTPS. В случае ошибок запуска сервера проверьте сертификат SSL и ключ
Подход B: Автономные установки Bitnami
Чтобы активировать поддержку SSL, выполните следующие действия:
Используйте приведенную ниже таблицу, чтобы определить правильное расположение сертификата и файлов конфигурации.
Переменная Значение URL текущего приложения https://[пользовательский домен]/ Пример: https://мой-домен.com/ или https://мой-домен.com/имя_приложения Файл конфигурации Apache каталог установки/apache2/conf/bitnami/bitnami.conf Файл сертификата каталог установки/apache2/conf/server. crt Ключевой файл сертификата installdir/apache2/conf/server.key Скопируйте сертификат SSL и файл ключа сертификата в указанные места.
ПРИМЕЧАНИЕ. Если вы используете разные имена для файлов сертификатов и ключей, вам следует перенастроить директивы SSLCertificateFile и SSLCertificateKeyFile в соответствующем файле конфигурации Apache, чтобы они отражали правильные имена файлов.
Если ваш центр сертификации также предоставил вам пакет центра сертификации (ЦС) в кодировке PEM, вы должны скопировать его в правильное место в предыдущей таблице. Затем измените файл конфигурации Apache, включив следующую строку под директивой SSLCertificateKeyFile . Выберите правильную директиву в зависимости от вашего сценария и версии Apache:
.Переменная Значение Файл конфигурации Apache каталог установки/apache2/conf/bitnami/bitnami. conf Директива для включения (Apache v2.4.8+) SSLCACertificateFile «installdir/apache2/conf/server-ca.crt» Директива для включения (Apache < v2.4.8) SSLCertificateChainFile «installdir/apache2/conf/server-ca.crt» ПРИМЕЧАНИЕ. Если вы используете другое имя для пакета сертификатов ЦС, вам следует перенастроить SSLCertificateChainFile или SSLCACertificateFile в соответствующем файле конфигурации Apache, чтобы отразить правильное имя файла.
После того, как вы скопировали все файлы сертификатов сервера, вы можете сделать их доступными для чтения пользователю root только с помощью следующих команд:
$ sudo chown root: root installdir/apache2/conf/server* $ sudo chmod 600 installdir/apache2/conf/сервер*
Откройте порт 443 в брандмауэре сервера. Дополнительные сведения см. в разделе часто задаваемых вопросов для Windows, Linux и macOS.
Перезапустите сервер Apache.
Теперь вы сможете получить доступ к своему приложению, используя URL-адрес HTTPS. В случае ошибок при запуске сервера проверьте SSL-сертификат и ключ.
Ознакомьтесь со следующими руководствами, если хотите узнать больше о настройке HTTPS.
SSL/TLS Strong Encryption: How-To — Apache HTTP Server Version 2.4
Apache HTTP Server Version 2.4
Доступные языки: en | фр
Этот документ предназначен для того, чтобы вы начали работу и узнали несколько вещей. работающий. Вам настоятельно рекомендуется прочитать остальную часть SSL документацию и глубже понять материал, прежде чем переходить к продвинутым методам.
- Пример базовой конфигурации
- Наборы шифров и усиление безопасности
- Сшивание OCSP
- Аутентификация клиента и контроль доступа
- Регистрация
См.
также- Комментарии
Ваша конфигурация SSL должна содержать как минимум следующие директивы.
LoadModule модули ssl_module/mod_ssl.so Слушай 443 <Виртуальный хост *:443> Имя сервера www.example.com SSLEngine включен SSLCertificateFile "/path/to/www.example.com.cert" SSLCertificateKeyFile "/path/to/www.example.com.key"
- Как создать сервер SSL, который принимает только надежное шифрование?
- Как я могу создать сервер SSL, который принимает все типы шифров в целом, но требуется надежный шифр для доступа к определенному URL-адресу?
Как создать сервер SSL, который принимает надежное шифрование Только?
Следующее включает только самые стойкие шифры:
SSLCipherSuite HIGH:!aNULL:!MD5
В следующей конфигурации вы указываете предпочтение для конкретных оптимизированных по скорости шифров (которые будут выбраны mod_ssl при условии, что они поддерживаются клиентом):
SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5 SSLHonorCipherOrder на
Как мне создать сервер SSL, который принимает все типы шифров в целом, но требует надежных шифров для доступа к конкретному URL?
Очевидно, общесерверный SSLCipherSuite
, который ограничивает
шифры к сильным вариантам, здесь не ответ. Однако, mod_ssl
можно перенастроить в Location
блоки, чтобы дать решение для каждого каталога, и может автоматически принудительно
повторное согласование параметров SSL для соответствия новой конфигурации.
Это можно сделать следующим образом:
# будь либералом вообще SSLCipherSuite ВСЕ:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL <Расположение "/strong/область"> # но https://hostname/strong/area/ и ниже # требует надежных шифров SSLCipherSuite HIGH:!aNULL:!MD5
Онлайн-протокол статуса сертификата (OCSP) — это механизм для определение того, был ли отозван сертификат сервера, и OCSP Сшивание — это особая форма этого, при которой сервер, такой как httpd и mod_ssl, поддерживает текущие ответы OCSP для своих сертификатов и отправляет их клиентам, которые общаются с сервером. Большинство сертификатов содержать адрес ответчика OCSP, поддерживаемый выдающим Центр сертификации, и mod_ssl может связываться с этим ответчиком для получить подписанный ответ, который можно отправить клиентам, взаимодействующим с сервер.
Поскольку клиент может получить статус отзыва сертификата из сервер, не требуя дополнительного подключения от клиента к Центр сертификации, сшивание OCSP является предпочтительным способом для статус отзыва, который необходимо получить. Другие преимущества устранения связи между клиентами и центром сертификации заключаются в том, что история просмотров клиентов не предоставляется центру сертификации и получение статуса более надежно, поскольку не зависит от потенциально сильно загруженные серверы центра сертификации.
Поскольку ответ, полученный сервером, может быть повторно использован для всех клиентов используя один и тот же сертификат в течение времени, пока ответ действителен, накладные расходы на сервер минимальны.
После правильной настройки общей поддержки SSL включение OCSP Сшивание обычно требует очень незначительных изменений в файле httpd. конфигурация — добавление этих двух директив:
SSLUseStapling On SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
Эти директивы размещаются в глобальной области (т. е. не в виртуальной
определение хоста) везде, где есть другие глобальные директивы конфигурации SSL.
размещены, например, в conf/extra/httpd-ssl.conf
для обычного
сборки с открытым исходным кодом httpd, /etc/apache2/mods-enabled/ssl.conf
для Ubuntu или Debian-в комплекте httpd и т. д.
Путь в директиве SSLStaplingCache
(например, журналов/
) должно совпадать с тем, что указано на Директива SSLSessionCache
. Этот путь относительный
до Корень сервера
.
Эта конкретная директива SSLStaplingCache
требует mod_socache_shmcb
(от префикса shmcb
на
аргумент директивы). Этот модуль обычно включен уже для SSLSessionCache
или от имени какого-либо модуля, отличного от mod_ssl
. Если вы включили кеш сеанса SSL с помощью
механизм, отличный от mod_socache_shmcb
, используйте эту альтернативу
механизм для SSLStaplingCache
. Например:
SSLSessionCache "dbm:logs/ssl_scache" SSLStaplingCache "dbm:logs/ssl_stapling"
Вы можете использовать программу командной строки openssl для проверки того, что ответ OCSP отправлено вашим сервером:
$ openssl s_client -connect www.example.com:443 -status -servername www.example.com ... Ответ ОССП: ======================================= Данные ответа OCSP: Статус ответа OCSP: успешно (0x0) Тип ответа: базовый ответ OCSP ... Статус сертификата: Хороший ...
В следующих разделах описаны наиболее распространенные ситуации, требующие
дальнейшее изменение конфигурации. См. также mod_ssl
справочное руководство.
Если для сервера используется несколько SSL-сертификатов
Ответы OCSP хранятся в кэше сшивания SSL. В то время как ответы обычно имеют размер от нескольких сотен до нескольких тысяч байт, mod_ssl поддерживает ответы OCSP размером до 10 КБ. С более чем несколько сертификатов, размер кэша сшивания (32768 байт в примере выше) может надо увеличить. Сообщение об ошибке AH01929 будет зарегистрировано в случае ошибка сохранения ответа.
Если сертификат не указывает на ответчик OCSP или если необходимо использовать другой адрес
См. Директива SSLStaplingForceURL
.
Вы можете подтвердить, что сертификат сервера указывает на ответчик OCSP с помощью программы командной строки openssl следующим образом:
$ openssl x509 -in ./www.example.com.crt -text | grep 'OCSP.*http' OCSP — URI: http://ocsp.example.com
Если указан URI OCSP и веб-сервер может с ним связаться напрямую без использования прокси, никакой настройки не требуется. Обратите внимание, что правила брандмауэра, контролирующие исходящие соединения с веб-сервера, могут нужно отрегулировать.
Если URI OCSP не указан, обратитесь в центр сертификации, чтобы
определить, доступен ли он; если это так, настройте его с помощью SSLStaplingForceURL
в виртуальном
узел, использующий сертификат.
Если настроено несколько виртуальных хостов с поддержкой SSL и OCSP Сшивание должно быть отключено для некоторых
. Добавьте SSLUseStapling Off
к виртуальным хостам, для которых OCSP
Сшивание должно быть отключено.
Если ответчик OCSP работает медленно или ненадежно
Доступно несколько директив для обработки тайм-аутов и ошибок. Ссылаться
к документации по SSLStaplingFakeTryLater
, SSLStaplingResponderTimeout
и SSLStaplingReturnResponderErrors
директивы.
Если mod_ssl регистрирует ошибку AH02217
AH02217: ssl_stapling_init_cert: Не удается получить сертификат издателя!
Для поддержки сшивания OCSP, когда определенный сертификат сервера используется, цепочка сертификатов для этого сертификата должна быть настроена. Если это не был настроен как часть включения SSL, будет выдана ошибка AH02217 когда сшивание включено, и клиентам не будет предоставлен ответ OCSP с помощью сертификата.
См. SSLCertificateChainFile
и SSLCertificateFile
для инструкций
для настройки цепочки сертификатов.
- Как заставить клиентов проходить аутентификацию с использованием сертификатов?
- Как заставить клиентов аутентифицироваться с использованием сертификатов для определенный URL-адрес, но по-прежнему разрешать произвольным клиентам доступ к остальной части сервера?
- Как разрешить доступ к определенный URL-адрес, но разрешить всем клиентам доступ к остальной части сервера?
- Как я могу требовать HTTPS с надежными шифрами, и либо базовая аутентификация или клиентские сертификаты для доступа к части Интранет-сайт для клиентов, приходящих из Интернета?
Как заставить клиентов проходить аутентификацию с использованием сертификатов?
Когда вы знаете всех своих пользователей (например, как это часто бывает на корпоративном
Интранет), вы можете потребовать простой проверки подлинности сертификата. Все вы
нужно сделать, это создать клиентские сертификаты, подписанные вашим собственным CA
сертификат ( ca. crt
), а затем проверить клиентов по этому
сертификат.
# требуется клиентский сертификат, который должен быть напрямую # подписано нашим сертификатом ЦС в ca.crt SSLVerifyClient требует SSLVerifyDepth 1 SSLCACertificateFile "conf/ssl.crt/ca.crt"
Как заставить клиентов аутентифицироваться с использованием сертификатов для определенный URL-адрес, но по-прежнему разрешать произвольным клиентам доступ к остальной части сервера?
Чтобы заставить клиентов аутентифицироваться с использованием сертификатов для определенного URL-адреса,
вы можете использовать функции реконфигурации для каждого каталога mod_ssl
:
SSLVerifyClient нет SSLCACertificateFile "conf/ssl.crt/ca.crt" <Местоположение "/secure/area"> SSLVerifyClient требует SSLVerifyDepth 1
Как разрешить доступ к определенный URL-адрес, но разрешить всем клиентам доступ к остальной части сервера?
Ключом к этому является проверка той части сертификата клиента,
соответствует тому, что вы ожидаете. Обычно это означает проверку всех или части
Отличительное имя (DN), чтобы узнать, содержит ли оно известную строку.
Есть два способа сделать это, используя либо mod_auth_basic
или SSLRequire
.
Метод mod_auth_basic
обычно требуется, когда
сертификаты совершенно произвольны, или когда их DN
нет общих полей (обычно организация и т.д.). В таком случае,
вам следует создать базу данных паролей, содержащую всех клиенты разрешены следующим образом:
SSLVerifyClient нет SSLCACertificateFile "conf/ssl.crt/ca.crt" SSLCACertificatePath "conf/ssl.crt" <Каталог "/usr/local/apache2/htdocs/secure/area"> SSLVerifyClient требует SSLVerifyDepth 5 SSLOptions+FakeBasicAuth SSLRequireSSL AuthName "Аутентификация Snake Oil" Основной тип авторизации Файл AuthBasicProvider AuthUserFile "/usr/local/apache2/conf/httpd.passwd" Требовать действительного пользователя Каталог>
Пароль, используемый в этом примере, представляет собой зашифрованную строку DES «password». Дополнительные сведения см. в документации SSLOptions
.
Информация.
httpd.passwd
/C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA /C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA /C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA
Когда все ваши клиенты являются частью общей иерархии, которая закодирована
в DN, вы можете легко сопоставить их, используя SSLRequire
следующим образом:
SSLVerifyClient нет SSLCACertificateFile "conf/ssl.crt/ca.crt" SSLCACertificatePath "conf/ssl.crt" <Каталог "/usr/local/apache2/htdocs/secure/area"> SSLVerifyClient требует SSLVerifyDepth 5 SSLOptions+FakeBasicAuth SSLRequireSSL SSLRequire %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ и %{SSL_CLIENT_S_DN_OU} в {"Персонал", "ЦС", "Разработчик"}
Как я могу требовать HTTPS с надежными шифрами и базовыми аутентификации или клиентские сертификаты для доступа к части Интранет-сайт для клиентов, приходящих из Интернета? Я все еще хочу разрешить простой HTTP-доступ для клиентов в интрасети.
В этих примерах предполагается, что клиенты в интрасети имеют IP-адреса в диапазоне
192.168.1.0/24 и что часть веб-сайта интрасети, которую вы хотите разрешить
доступ в Интернет по адресу /usr/local/apache2/htdocs/subarea
.
Эта конфигурация должна оставаться за пределами вашего виртуального хоста HTTPS, поэтому
что это применимо как к HTTPS, так и к HTTP.
SSLCACertificateFile "conf/ssl.crt/company-ca.crt" <Каталог "/usr/local/apache2/htdocs"> # За пределами подзоны предоставляется доступ только к Интранету Требовать IP 192.168.1.0/24 Каталог> <Каталог "/usr/local/apache2/htdocs/subarea"> # Внутри подзоны разрешен любой доступ в Интранет # а из интернета только HTTPS + Strong-Cipher + Password # или альтернативный HTTPS + Strong-Cipher + Client-Certificate # Если используется HTTPS, убедитесь, что используется надежный шифр. # Дополнительно разрешить клиентские сертификаты в качестве альтернативы базовой аутентификации. 192\.168\.1\.[0-9]+$" RewriteCond "%{HTTPS}" "!=on" Правило перезаписи "." "-" [Ф] # Разрешить доступ к сети и/или базовую аутентификацию Удовлетворить любой # Контроль доступа к сети Требовать ip 192.168.1.0/24 # Базовая HTTP-аутентификация Основной тип авторизации AuthName "Защищенная область интрасети" Файл AuthBasicProvider AuthUserFile "conf/protected.passwd" Требовать действительного пользователя Каталог>
mod_ssl
может регистрировать чрезвычайно подробную отладочную информацию
в журнал ошибок, когда его LogLevel
установить более высокие уровни трассировки. С другой стороны, на очень загруженном сервере
уровень информация
может быть уже слишком много. Помните, что вы можете
настроить LogLevel
для каждого модуля на
удовлетворить ваши потребности.
Примечание:
Это не раздел вопросов и ответов.