Включение SSL на вашем веб-сервере
Протокол SSL представляет собой стандартную технологию безопасности, которая используется для установления шифрованного соединения между веб-сервером и веб-клиентом. SSL позволяет безопасно обмениваться данными благодаря идентификации и проверки подлинности сервера, а также обеспечению конфиденциальности и целостности всех передаваемых данных. Поскольку SSL предотвращает перехват или взлом данных, отправляемых по сети, его необходимо использовать со всеми механизмами регистрации или аутентификации, а также во всех сетях, в которых происходит обмен конфиденциальной информацией.
SSL позволяет защитить имена, пароли и другую важную информацию от дешифровки в канале связи между Web Adaptor и сервером. При использовании SSL подключение к веб-страницам и ресурсам осуществляется по протоколу HTTPS, а не HTTP.
Для использования SSL необходимо получить сертификат SSL и связать его с веб-сайтом, на котором установлен Web Adaptor. Каждый веб-сервер имеет собственную процедуру загрузки сертификата и его привязки к веб-сайту.
Создание сертификата SSL
Для создания SSL-соединения между Web Adaptor и сервером, веб-серверу требуется сертификат SSL. Сертификат SSL – это цифровой файл, содержащий информацию об удостоверении веб-сервера. Он также содержит метод шифрования, который используется при создании защищенного канала между веб-сервером и ArcGIS Server. Сертификат SSL должен создаваться владельцем веб-сайта и иметь цифровую подпись. Существует три типа сертификатов, подписанные центром сертификации (CA), домена и самозаверяющийся, которые описываются ниже.
Сертификаты, подписанные центром сертификации (CA)
Сертификаты, подписанные центром сертификации (CA), следует использовать для производственных систем, особенно если к развертыванию ArcGIS Server предполагается доступ пользователей извне вашей организации. Например, если сервер не защищен файрволом и доступен через Интернет, использование сертификата, подписанного центром сертификации (CA) гарантирует пользователям вне организации, что идентичность веб-сайта подтверждена.
Помимо подписи владельца сайта сертификат SSL может иметь подпись независимого сертифицирующего органа (CA). Центром сертификации (CA) обычно является пользующаяся доверием сторонняя организация, которая может подтвердить подлинность веб-сайта. Если веб-сайт является заслуживающим доверия, центр сертификации добавляет собственную цифровую подпись в самозаверяющий сертификат SSL сайта. Это говорит веб-клиентам, что идентичность веб-сайта проверена.
При использовании сертификата SSL, выданного известным центром защищенное соединение между сервером и веб-клиентом возникает автоматически, и никаких специальных действий пользователю предпринимать не надо. Поскольку веб-сайт проверен CA, вы не увидите предупреждений или неожиданного поведения веб-браузера.
Сертификаты домена
Если сервер находится за файрволом и использование подписанного CA сертификата невозможно, воспользуйтесь сертификатом домена. Доменный сертификат – это внутренний сертификат, подписанный CA вашей организации. Использование сертификатов домена помогает снизить стоимость выпуска сертификатов и облегчает их развертывание, поскольку сертификаты быстро генерируются в вашей организации для доверительного внутреннего пользования.
Пользователи, находящиеся в вашем домене, не увидят предупреждений или неожиданного поведения веб-браузера, обычно связанных с использованием самозаверенных сертификатов, поскольку веб-сайт был проверен сертификатом домена. Однако сертификаты домена не проверяются внешней CA, это означает, что пользователи, заходящие на сайт извне домена, не смогут проверить подлинность вашего сертификата. Внешние пользователи увидят в веб-браузере сообщения об отсутствии доверия к сайту, пользователь может считать, что зашел на вредоносный сайт и уйти с него.
Создание доменного сертификата в IIS
В Manager IIS выполните следующие шаги, чтобы создать сертификат домена:
- На панели Подключения (Connections) выберите ваш сервер в дереве каталога и дважды щелкните Сертификаты сервера (Server Certificates) .


- В поле Общее имя (Common name) введите полное доменное имя компьютера, например, gisserver.domain.com .
- Заполните другие параметры, указав данные вашей организации и расположения.

Последний шаг – связать сертификат домена с SSL-портом 443. Инструкции см. в разделе Привязка сертификата к веб-сайту .
Самозаверяющие сертификаты
Сертификат SSL, подписанный только владельцем веб-сайта, называется самозаверяющим сертификатом. Самозаверяющие сертификаты обычно используются на веб-сайтах, которые доступны только пользователям внутренней сети организации (LAN). Если веб-сайт, использующий самозаверяющий сертификат, находится вне вашей собственной сети, вы не сможете проверить, действительно ли сайт, выпустивший сертификат, представляет указанную в нем организацию. При работе с таким сайтом вы подвергаете риску вашу информацию, поскольку за ним могут стоять злоумышленники.
Создание самозаверяющегося сертификата в IIS
В Manager IIS выполните следующие шаги, чтобы создать самозаверяющийся сертификат:
- На панели Подключения (Connections) выберите ваш сервер в дереве каталога и дважды щелкните Сертификаты сервера (Server Certificates) .


Последний шаг – связать самозаверяющийся сертификат с SSL-портом 443. Инструкции см. в разделе Привязка сертификата к веб-сайту .
Привязка сертификата к веб-сайту
После создания сертификата SSL необходимо привязать его к веб-сайту, на котором установлен Web Adaptor. Привязка означает процесс настройки сертификата SSL для использования порта 443 на веб-сайте. Инструкции по привязке сертификата к веб-сайту отличаются в зависимости от платформы и версии веб-сервера. Если вам необходимы инструкции, обратитесь к системному администратору или изучите документацию веб-сервера. Например, шаги для привязки сертификата в IIS см. ниже.
Привязка сертификата к порту 443 в IIS
В Manager IIS выполните следующие шаги, чтобы связать сертификат с SSL-портом 443:

- Выберите ваш сайт в дереве каталога и на панели Действия (Actions) щелкните Связи (Bindings) .
- Если порт 443 отсутствует в списке Связи, щелкните Добавить (Add) . В ниспадающем списке Тип (Type) выберите https . Оставьте порт 443.
- Если порт 443 имеется в списке, выберите его и щелкните Редактировать (Edit) .
- В ниспадающем списке сертификат SSL выберите имя вашего сертификата и щелкните OK .

Проверка сайта
После привязки сертификата и веб-сайта, вы можете настроить Web Adaptor на работу с сервером. Вам понадобится открыть страницу настройки Web Adaptor с использованием URL по протоколу HTTPS, например, https://webadaptor.domain.com/arcgis/webadaptor .
После настройки Web Adaptor следует проверить, что SSL работает правильно, сделав HTTPS-запрос к ArcGIS Server Manager, например, https://webadaptor.domain.com/arcgis/manager .
Более подробно о тестировании сайта с SSL см. в инструкциях Microsoft по настройке SSL в IIS.
Авторизация с помощью сертификата ssl на nginx + Let’s Encrypt
Добрый день, вечер или ночь, все зависит от времени суток в который вам довелось прочитать мою статью.
В связи с ростом количества корпоративных клиентов, было принято решение дать доступ к учетной системе внешним пользователям. Для самостоятельного оформления заказов и отслеживания их состояний. Реализация была создан web интерфейс с необходимым функционалом и доступом. Тут же стал вопрос безопасности, кроме стандартных пользователь-пароль было решено еще усилить безопасность, для этого применили OpenVPN, но появились клиенты, для которых нельзя применять OpenVPN (политики безопасности, нежелания и.д.), тут на глаза попались статьи про доступ по ssl сертификату.

Исходные данные:
Сервер с учетной программой + web интерфейс находятся в DMZ;
WEB-server на nginx, на него проброшены порты http(80) и https(443);
На web-server настроен proxy_pass на сервер с учетной программой, доступ только по порту 8080 и только с IP web-server, большего доступа с серверу нет(обычная безопасность);
На сайт для доступа установлен сертификат от Let’s Encrypt.
Переходим к самому процессу создания сертификата пользователя:
Для сертификатов будем использовать каталог «/etc/ssl/crm.example.ru»
Создаём структуру каталогов:
# mkdir /etc/ssl/crm.example.ru # cd /etc/ssl/crm.example.ru # mkdir db # mkdir db/certs # mkdir db/newcerts # touch db/index.txt # echo "01" > db/serial # chmod 700 ./
Создаем конфигурационный файл для подписи сертификатов.
[ ca ] default_ca = CA_CITENAME # Секция по умолчанию для подписи сертификатов [ CA_CITENAME ] droot = /etc/ssl/crm.example.ru # Корневой каталог хранилища dir = $droot/db # Каталог базы хранилища certs = $dir/certs # Каталог сертификатов new_certs_dir = $dir/newcerts # Каталог для новых сертификатов (pem) database = $dir/index.txt # Файл базы сертификатов serial = $dir/serial # Файл серийного номера # Файл доверенного сертификата certificate = $droot/ca.crt # Закрытый ключ доверенного сертификата private_key = $droot/ca.key default_days = 365 # Срок действия нового сертификата (дни) default_crl_days = 7 # Срок действия списка отозванных сертификатов default_md = md5 # Использовать алгоритм MD5 policy = policy_citename # Политика секции [ policy_citename ] countryName = optional # Необязательный параметр stateOrProvinceName = optional # . localityName = optional # . organizationName = optional # . organizationalUnitName = optional # . commonName = supplied # обязательный параметр emailAddress = supplied # . [ req_distinguished_name ] countryName = Название страны (2-буквенный код) countryName_default = RU countryName_min = 2 countryName_max = 2 stateOrProvinceName = Название области (полное название) stateOrProvinceName_default = Tyumen region localityName = Название местности (например, город) localityName_default = Tyumen 0.organizationName = Название организации 0.organizationName_default = EXAMPLE organizationalUnitName = Название организационной единицы (например, отдел) commonName = Ваше имя commonName_max = 64 emailAddress = Email адрес emailAddress_max = 64
Создаем самоподписанный сертификат и новый ключ сервера без пароля:
# openssl req -new -newkey rsa:2048 -nodes -keyout ca.key -x509 -days 365 \ -subj "/C=RU/ST=Tyumen region/L=Tyumen/O=EXAMPLE/OU=CRM/CN=crm.example.ru/emailAddress=crm@example.ru" \ -out ca.crt
Либо, если хотите всё вводить вручную.
# openssl req -new -newkey rsa:2048 -nodes -keyout ca.key -x509 -days 365 -out ca.crt
Просмотреть данные закрытого ключа и сертификата вы можете с помощью команд:
# openssl rsa -noout -text -in ca.key (для ключа) # openssl x509 -noout -text -in ca.crt (для сертификата)
Создание клиентского закрытого ключа и запроса на сертификат (CSR):
# openssl req -new -newkey rsa:2048 -nodes -keyout client01.key \ -subj "/C=RU/ST=Tyumen region/L=Tyumen/O=EXAMPLE/OU=CRM/CN=User example1/emailAddress=user@example1.ru" \ -out client01.csr
Либо, если хотите всё вводить вручную.
#openssl req -new -newkey rsa:2048 -nodes -keyout client01.key -out client01.csr
Заместо User example1 можно указать почту клиента, а за место EXAMPLE компанию клиента, это поможет отслеживать сертификаты.
В результате выполнения команды появятся два файла client01.key и client01.csr. Просмотреть данные закрытого ключа и запроса на сертификат (CSR) вы можете с помощью команд:
# openssl rsa -noout -text -in client01.key (для ключа) # openssl req -noout -text -in client01.csr (для запроса)
Подпись запроса на сертификат (CSR) с помощью доверенного сертификата (CA). При подписи запроса используются параметры заданные в файле ca.config
# openssl ca -config ca.config -in client01.csr -out client01.crt -batch
Подготовка данных для передачи клиенту. Для передачи полученных в результате предыдущих операций файлов клиенту, обычно используется файл в формате PKCS#12. В этот файл упаковывается и защищается паролем вся информация необходимая клиенту для инсталляции сертификата в броузер.
# openssl pkcs12 -export -in client01.crt -inkey client01.key \ -certfile ca.crt -out client01.p12 -passout pass:123ewqasdcxz
Выставляем права доступа на ключи.
# chmod 600 /etc/ssl/crm.example.ru/client*.crt # chmod 600 /etc/ssl/crm.example.ru/client*.key
Переместим все созданные файлы в каталог db/certs на хранение.
# mv ./client01.* db/certs/
В nginx надо установить:
ssl_client_certificate /etc/ssl/crm.example.ru/ca.crt; ssl_verify_client on; ssl_verify_depth 1;
Для того чтобы клиент смог подключиться по сертификату ему необходимо отправить файл client01.p12 и ca.crt, а так же сообщить пароль для установки сертификата. ca.crt необходим, так как мы не используем его для сертификации сервера, для этомо используеться Let’s Encrypt.
Процесс выдачи сертификатов можно автоматизировать, написать просто скрипт не составит труда. У нас таких клиентов не много, около 15, так что вбить всё руками не составило проблем.
Мой рабочий пример:
Окно выбора сертификата:


Работоспособность Let’s Encrypt:

В подготовке материала помогли статьи:
P.S. Проверка проводилась на Google Chrome.
Как установить SSL на хостинг
Как сделать сайт защищенным? Протокол HTTPS: как подключить его к сайту? Пошаговая инструкция приведена в статье: Как перевести сайт на HTTPS? В этой статье мы расскажем об одном из этапов — установке SSL-сертификата.
Также вы можете заказать услугу «Расширенная техподдержка хостинга», в которую входит помощь в установке SSL-сертификата.
Перед установкой SSL перейдите к списку услуг в личном кабинете, кликните по строке нужного SSL-сертификата и убедитесь, что статус услуги «Активна».

Если услуга неактивна, используйте инструкции в зависимости от типа сертификата:
Установка SSL-сертификата
В статье описан процесс установки сертификата на хостинг. Если вы хотите установить SSL на услуги другого типа, воспользуйтесь справочными статьями:
- Как установить SSL-сертификат на VPS или выделенный сервер
- Установка SSL-сертификата на Apache
- Установка SSL-сертификата на Nginx
- Установка SSL-сертификата в Конструкторе Рег.ру
В Рег.ру вы можете установить SSL-сертификат на хостинг двумя способами:
- Автоматически в личном кабинете через карточку SSL или карточку хостинга — если заказали бесплатный SSL-сертификат;
- Вручную в хостинг-панели управления — если заказали платный SSL-сертификат.
Автоматическая установка в ЛК
Если вы заказывали бесплатный SSL-сертификат, то можете автоматически установить его через карточку услуги SSL. Если у вас другой SSL-сертификат и ваш хостинг находится в Рег.ру, установите SSL через карточку хостинга. В других случаях вам подойдет ручная установка сертификата.
через карточку SSL-сертификата
через карточку хостинга

В личном кабинете перейдите в карточку нужного SSL-сертификата:

Нажмите Установить на вкладке «Управление»:

На открывшейся странице выберите сертификат, купленный в Рег.ру, и приложите файл с приватным ключом в формате .key : Где взять приватный ключ установки SSL-сертификата. Затем выберите услугу хостинга, на которую хотите установить сертификат, и нажмите Отправить заявку на установку : Аналогично загружаются сертификаты сторонней компании. Вам понадобятся данные для установки этого сертификата. Их вы можете получить у поставщика SSL-сертификата. Готово, после установки вы получите уведомление на контактный e-mail.

В личном кабинете перейдите в карточку нужного хостинга:

На вкладке «Операции» нажмите Установить SSL-сертификат:

На открывшейся странице заполните форму. В выпадающем списке выберите SSL-сертификат, заказанный в Рег.ру, или загрузите свой. Если вы выбираете сертификат, купленный в Рег.ру, вам необходимо прикрепить Файл с приватным ключом. Подробнее о том, как его получить, в статье Где взять данные для установки SSL-сертификата? В пункте «Установить на хостинг» выберите нужный хостинг, а затем нажмите Отправить заявку на установку: Готово, SSL-сертификат будет установлен через 15 минут после подачи заявки.
Ручная установка в панели хостинга
Чтобы установить SSL-сертификат, войдите в вашу панель управления (ispmanager, cPanel или Plesk) и следуйте соответствующей инструкции ниже:
ispmanager
Обратите внимание! Если внешний вид вашей панели управления отличается от представленного в инструкции, кликните в левом нижнем углу «Попробовать новый интерфейс».

Перейдите в раздел «SSL-сертификаты» и нажмите Добавить сертификат:

Выберите тип сертификата «Существующий» и нажмите Далее:

Заполните поля на открывшейся странице. Данные для установки сертификата высылаются на почту после активации услуги: Где взять данные для установки SSL-сертификата. — Имя SSL-сертификата — введите любое имя, под которым сертификат будет отображаться в панели управления (можно использовать только латиницу); — SSL-сертификат — вставьте данные SSL-сертификата (в информационном письме он находится после слов «Ваш сертификат предоставлен ниже»); — Ключ SSL-сертификата — вставьте приватный ключ сертификата; — Цепочка SSL-сертификатов — вставьте сначала промежуточный сертификат, а затем с новой строки без пробела — корневой. Нажмите Завершить:

После завершения установки перейдите в раздел «Сайты», дважды кликните по домену, для которого выпускался сертификат:

Поставьте галочку напротив Защищенное соединение (SSL). В раскрывающемся списке напротив SSL-сертификат выберите имя SSL-сертификата, установленного в 4 шаге. Затем нажмите Оk внизу страницы: Готово, SSL-сертификат установлен. Проверка сертификата (HTTPS) на корректность установки осуществляется по инструкции ниже.
Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.

В блоке «Безопасность» нажмите SSL/TLS:

Нажмите Управление SSL-сайтами:

Пролистайте до блока «Установить SSL-сайт». В раскрывающемся списке выберите домен, для которого устанавливаете SSL-сертификат:

Заполните поля. Данные для установки сертификата высылаются на почту после активации услуги: Где взять данные для установки SSL-сертификата. — Сертификат: (CRT) — вставьте SSL-сертификат (в информационном письме он находится после слов «Ваш сертификат предоставлен ниже»); — Закрытый ключ (KEY) — вставьте приватный ключ сертификата; — Пакет центра сертификации: (CABUNDLE) — вставьте сначала промежуточный сертификат, а затем с новой строки без пробела — корневой Нажмите кнопку Установить сертификат:

Чтобы завершить установку, нажмите OК в появившемся окне: Готово, SSL-сертификат установлен. Как проверить сертификат сайта онлайн?
Обратите внимание! Если внешний вид вашей панели управления отличается от представленного в инструкции, перейдите в раздел «Сайты и домены» и в правом верхнем углу измените вид на «Активный».

В разделе «Сайты и домены» выберите блок того домена, для которого выпускался SSL-сертификат, и нажмите SSL/TLS-сертификаты:

Нажмите Добавить SSL/TLS-сертификат:

Заполните поля на открывшейся странице. Данные для установки сертификата высылаются на почту после активации услуги: Где взять данные для установки SSL-сертификата? — Имя сертификата — введите любое имя, под которым сертификат будет отображаться в панели управления (можно использовать только латиницу); — Закрытый ключ (.key) — вставьте приватный ключ сертификата; — Сертификат (.crt) — вставьте сам SSL-сертификат (в информационном письме он находится после слов «Ваш сертификат предоставлен ниже»); — Корневой сертификат (-ca.crt) — вставьте сначала промежуточный сертификат, а затем с новой строки без пробела — корневой. Нажмите Загрузить сертификат:

После установки сертификата в панели появится уведомление о том, что нужно привязать SSL-сертификат к домену. Чтобы сделать это, вернитесь в раздел «Сайты и домены» и нажмите Настройки хостинга:

В блоке «Безопасность» поставьте галочку напротив Поддержка SSL/TLS. Выберите в выпадающем списке имя сертификата, установленного в 4 шаге. Нажмите Применить внизу страницы: Готово, SSL-сертификат установлен. Проверить наличие SSL-сертификата на сайте можно по инструкции.
Как проверить правильность установки SSL-сертификата
Проверка SSL-сертификата на корректность установки производится с помощью сервиса sslshopper.com.
Проверить SSL-сертификат сайта онлайн можно по инструкции ниже:
Введите имя вашего домена и нажмите Check SSL. Если у вас кириллический домен, то его надо ввести в формате Punycode.

При корректной установке SSL-сертификата вы увидите примерно такой результат:
В некоторых случаях результаты проверки кэшируются, и отображаются устаревшие данные. Об этом свидетельствует текст под строкой поиска. Чтобы получить актуальную информацию об установке SSL-сертификата, перейдите по ссылке clicking here и пройдите CAPTCHA-тест:

Если сертификат установлен некорректно, свяжитесь со службой технической поддержки.
Что дальше?
После установки SSL-сертификата сайт становится доступным как по http://, так и по https://. Но по умолчанию сайт открывается по небезопасному протоколу http://. Чтобы сайт всегда открывался по защищенному протоколу, настройте переадресацию на https://. Следуйте инструкциям, чтобы узнать, как подключить HTTPS на сайте:
- Редирект с http на https в ispmanager
- Редирект с http на https в cPanel и Plesk
- Редирект с http на https для Windows (через web.config)
- Как настроить HTTPS для сайта на WordPress
Помогла ли вам статья?
Спасибо за оценку. Рады помочь
Вход на сайт по сертификату как сделать
а в httpd.conf
SSLCACertificateFile ssl/ca.crt
и только после этого все заработало.
А директива SSLRequire должна выглядеть как SSLRequireSSL.
Если можно расскажите как удалось авторизацию юзеров по сертификатам сделать? (что в каком порядке, если гайд есть буду прыгать от счастья)
Мудохаюсь с EasyPHP3.0 вроде бы все что надо есть, а в сертификатах запутался наглухо.
полностью это выглядит так
SSLEngine On
SSLVerifyClient require
SSLCertificateFile ca.crt
SSLCertificateKeyFile ca.key
SSLCACertificateFile ca.crt
DocumentRoot «. »
Необходимо:
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
SSLCACertificateFile /path/to/ca.crt
SSLVerifyClient require