Возникла необходимость привязки полноценного (не само подписанного) сертификата к серверу публикации 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 команду:
Вместо domain.name нужно вставить свое значение домена. Это и есть принцип работы онлайн-конвертеров.
На этом, сложная часть закончена, переходим к серверу ArcGIS.
1. Переходим по ссылке на наш сервер
2. Переходим в раздел Resourses: «machines»
3. Выбираем нашу машину (как мы ее назвали, например ArcGIS)
4. Переходим в раздел Resourses: «sslcertificates»
5. Выбираем из Supported Operations: «importExistingServerCertificate»
Здесь мы видим знакомые нам поля:
Если после нажатия кнопки 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 с существующим сертификатом