Май 042024
 

arcgis  logo Возникла необходимость привязки полноценного (не само подписанного) сертификата к серверу публикации ArcGIS, в связи с тем, что при запросе с сервера начинает ругаться на несоответствие сертификата безопасности (не мудрено). Задача не совсем тривиальная, так как публикатор ArcGis использует не совсем стандартые методы, и не использует полноценно IIS. Для того, чтобы все корректно сработало, нам необходим сертификат в формате .pkcs #12, который не совсем просто получить в исходном виде, так как большинство провайдеров выпущенный сертификат отдают нам в любимом формате «великой тройки» — сам сертификат, промежуточный сертификат, и ключ. По итогу, что с этим делать, и в какой последовательности, мы и разберем.

Первое, что нам необходимо, это получить от провайдера все три файла:
1. Файл ключа *.key
2. Файл промежуточных сертификатов *.crt
3. Сам файл сертификата *.crt

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

Далее, нам необходимо преобразовать наш сертификат, в понятный для сервера ArcGIS формат, т.е. pfx. Для этого существует 2 варианта: «параноидальный», и «простой», с помощью web сервиса, коих на просторах интернета тьма, но существует вероятность, что ваш сертификат «уплывет» в неизвестные руки.

Рассмотрим оба варианта, но для начала небольшая справка:

Формат .pfx или .pkcs #12 — общепринятый стандарт работы с подписями. Это единственный способ возможно экспортировать сертификат вместе с закрытым ключом. Он нужен, чтобы скинуть сертификат на флешку или перенести на другой компьютер.
Что такое p12-сертификат

Простым языком: p12 — это копия стандартной цифровой подписи в формате XML. Он зашифрован с помощью алгоритма PKCS#12. Как у остальных сертификатов, у p12 есть свои правила, ограничения и сроки действия. Конвертировать p12 в другой сертификат невозможно, потому что формат p12 сохраняет целостность сообщений, и после попытки конверсии валидация ключей может быть нарушена.

Перейдем к практике:
Вариант первый, автоматический:
1. Переходим по ссылке SSL конвертер,
2. Вставляем в поле содержимого сертификата полностью (со всем содержимым файла) в поле,
3. Указываем приватный ключ,
4. Указываем в цепочке сертификатов наш файл промежуточных сертификатов (надеюсь вы проверили содержимое файла перед манипуляциями?),
5. Тип сертификата указываем PEM,
6. Конвертируем в PFX,
7. Обязательно указываем пароль на файл, он нам понадобится в дальнейшем.

Нажимаем кнопку сконвертировать, и ждем получения конечного файла в формате *.pfx

Вариант второй, «параноидальный», то есть ручной:
Если не получается использовать конвертер, преобразовать цифровую подпись можно на обычном домашнем компьютере. В Linux достаточно просто ввести команду в адресную строку, в Windows же понадобится:
1. Программа OpenSSL,
2. библиотеки MS VC++ Redistributable 2008,
3. сама подпись.
Программу и библиотеку легко найти в интернете.

Чтобы получить pfx-файл сертификата, нужно ввести в OpenSSL команду:

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

Вместо domain.name нужно вставить свое значение домена. Это и есть принцип работы онлайн-конвертеров.

На этом, сложная часть закончена, переходим к серверу ArcGIS.

1. Переходим по ссылке на наш сервер

https://gisserver.domain.com:6443/arcgis/admin

2. Переходим в раздел Resourses: «machines»
3. Выбираем нашу машину (как мы ее назвали, например ArcGIS)
4. Переходим в раздел Resourses: «sslcertificates»
5. Выбираем из Supported Operations: «importExistingServerCertificate»

Здесь мы видим знакомые нам поля:

  • Certificate password (ранее заданный нами пароль)
  • Alias (здесь задается имя, которое обозначает загрузку нашего сертификата, например supercert.domain.com)
  • Certificate file (ну и наш созданный ранее сертификат
  • Format (должен быть выбран HTML)
  • Если после нажатия кнопки Submit никаких ошибок не появляется, то значит все сделано правильно. Осталось только указать на использование нашим сервером ArcGIS нашего свеже-добавленного сертификата.
    Для этого, мы возвращаемся на шаг 3 (где выбирали наш сервер с названием ArcGIS) и выбираем из Supported Operations: «edit»
    В поле Web server SSL Certificate мы должны в ручную прописать название нашего ранее созданного Alias, т.е. supercert.domain.com, и нажать кнопку «Save Edits»
    Если после нажатия кнопки, никаких ошибок не появилось, то терпеливо ждем, так как автоматически запустится перезагрузка сервиса публикации с применением нового сертификата. Это может занять до 10-15 минут, в зависимости от мощностей вашего сервера.
    После этого заходим по ссылке https://gisserver.domain.com:6443 и убеждаемся, что новый сертификат заработал.

    Вы великолепны, идем пить чай или кофе (или чего вы там любите).

    Полезные ссылки:
    SSL конвертер
    Настройка ArcGIS Server для использования нового сертификата
    Настройка ArcGIS Server с существующим сертификатом

     Leave a Reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    (required)

    (required)