Установка сертификата в ManageEngine ServiceDesk

Обновлено 21.04.2022

ManageEngine ServiceDesk logoДобрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами подробно поговорили про алгоритм обновления ManageEngine ServiceDesk. Так же мы успешно научились устранять ошибку "Sorry, your upgrade from 9400 to 10000 failed. Send us the log file for further analysis". В итоге я получил последнюю версию сервидеска, но так как я сбрасывал мастер-ключи и сертификаты, то мне нужно было заново импортировать SSL в ManageEngine ServiceDesk, это я и решил осветить в данной заметке, мало ли когда еще пригодится.

Когда я пытаюсь зайти на свой адрес ManageEngine ServiceDesk, то у меня выскакивает в Google Chrome предупреждение, что "Подключение не защищено, NET:ERR_CERT_COMMON_NAME_INVALID". Но вы можете, это пропустить и довериться данному сайту.

Подключение не защищено ManageEngine ServiceDesk

Далее в Google Chrome вы можете посмотреть сертификат безопасности, кликнув на против адреса сайта, на поле "Не защищено".

Установка ssl в ManageEngine ServiceDesk-02

В итоге вам покажут ваш сертификат, вам необходимо будет проверить адрес сайта указанного в нем и срок действия. У меня в примере он просрочился, его заменить. Если у вас ваш хелпдеск доступен исключительно во внутренней зоне DNS, то вы можете использовать свой центр сертификации, если доступен в публичном пространстве, то нужно формировать CSR запрос у внешнего CA, я кстати писал вам, где вы можете за 1800 рублей приобрести SSL на 3 года, советую почитать.

Установка ssl в ManageEngine ServiceDesk-03

Процедура импорта сертификата в ManageEngine ServiceDesk

У разработчиков есть FAQ, где они бегло описали процедуру генерации CSR средствами ManageEngine ServiceDesk и генерацию файла хранилища ключей (.keystore).

https://help.servicedeskplus.com/introduction/install-ssl.html

В моем случае у меня уже есть сертификат Wildcard *.pyatilistnik.org. Его я и буду импортировать. Он у вас должен быть в формате архива pfx. Если нет, то вам нужно конвертировать сертификат в PFX архив, читайте по ссылке, как это сделать. В веб интерфейсе ManageEngine ServiceDesk вы переходите в пункт "Параметры".

Параметры ManageEngine ServiceDesk

Далее в правом нижнем углу, находим раздел "Общие параметры - Импорт сертификата SSL".

Импорт сертификата SSL в ManageEngine ServiceDesk

Тут мне сразу написали, что у меня возникла неизвестная ошибка. Обратитесь в службу поддержки и предоставьте все необходимые журналы сервера вместе с сертификатом. Вы увидите поле импорта SSL сертификата. Как там подписано в подсказке, он умеет работать с форматами:

  • cer
  • crt
  • p7b
  • keystore
  • pfx
  • jks

Нажимаем кнопку просмотр и выбираем ваш сертификат.

Импорт сертификата в ManageEngine ServiceDesk-05

Вы мне сможете импортировать, так как вам еще нужно предоставить пароль от хранилища ключей.

Импорт SSL через веб интерфейс ManageEngine ServiceDesk

Что такое Java Keystore?

Keystore - это по сути защищенная база данных, где хранятся приватные ключи и сертификаты клиента и сервера. Аналог оснастки certmgr.msc в Windows.

Для аутентификации клиента и сервера устанавливающих SSL соединение требуются приватные ключи и сертификаты. Если используется односторонняя аутентификация, то keystore нужен только на серверной стороне. При двусторонней аутентификации и клиент и сервер обмениваются сертификатами, соответственно и у сервера, и у клиента должен быть keystore с парой приватный ключ/публичный ключ + сертификат.

Keystore - Этот класс представляет хранилище для криптографических ключей и сертификатов. KeyStore управляет различными типами записей. Каждый тип записи реализует KeyStore.Entry интерфейс. Предусмотрено три основных варианта KeyStore.Entryреализации:

  • KeyStore.PrivateKeyEntry - Этот тип записи содержит криптографию PrivateKey, которая может храниться в защищенном формате для предотвращения несанкционированного доступа. Он также сопровождается цепочкой сертификатов для соответствующего открытого ключа. Закрытые ключи и цепочки сертификатов используются данным объектом для самостоятельной аутентификации. Приложения для этой аутентификации включают точки распространения программного обеспечения, которые подписывают файлы JAR как часть выпуска и/или лицензирования программного обеспечения.
  • KeyStore.SecretKeyEntry - Этот тип записи содержит криптографию SecretKey, которая может храниться в защищенном формате для предотвращения несанкционированного доступа.
  • KeyStore.TrustedCertificateEntry - Этот тип записи содержит один открытый ключ, Certificate принадлежащий другой стороне. Он называется доверенным сертификатом, поскольку владелец хранилища ключей верит, что открытый ключ в сертификате действительно принадлежит идентификатору, указанному субъектом (владельцем) сертификата. Этот тип записи может быть использован для аутентификации других сторон. Каждая запись в хранилище ключей идентифицируется строкой «псевдоним (Alias)». В случае закрытых ключей и связанных с ними цепочек сертификатов эти строки различают различные способы аутентификации объекта. Например, объект может аутентифицировать себя, используя разные центры сертификации или используя разные алгоритмы открытого ключа.

Подробнее https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html

Создание хранилища ключей

Приступаем к созданию файла хранилища ключей (.keystore). Откройте командную строку от имени администратора и перейдите в расположение C:\ManageEngine\ServiceDesk\jre\bin

cd C:\ManageEngine\ServiceDesk\jre\bin

Тут есть утилита keytool, которая позволит на первом этапе создать хранилище сертификатов. Удостоверьтесь, что у вас уже нет хранилища, для этог опроверте наличие файла sdp.keystore. Если файл sdp.keystore есть, то нужно знать от него пароль, если у вас его нет, то взломать его или сбросить, не получится. Придется его удалять и делать новое хранилище. Вводим команду для формирования хранилища.

keytool -genkey -alias *.pyatilistnik.org -keyalg RSA -keystore sdp.keystore

Если нужно явно указать размер, например 2018, то команда будет выглядеть вот так

keytool -genkey -alias *.pyatilistnik.org -keyalg RSA -keysize 2048 -keystore sdp.keystore

У вас появится мастер создания ключей. Вам необходимо будет заполнить поля:

  • Enter keystore password: - указываем нужный вам пароль защиты хранилища, минимум 6 символов
  • Re-enter new password: - повторяем введенный ранее пароль
  • What is your first and last name? - тут указываете ваше полное доменное имя, в моем примере это desk.pyatilistnik.org. Если у вас wildcard сертификат, то вы пишите *.pyatilistnik.org
  • What is the name of your organizational unit? - имя организационного подразделения, отдела, я указал Pyatilistnik Inc
  • What is the name of your organization? - Название организации Pyatilistnik Inc
  • What is the name of your City or Locality? Название города, Moscow
  • What is the name of your State or Province? - Штат или область, Moskow
  • What is the two-letter country code for this unit? - Страна, вводится в виде двух символов в международном формате, RU Is CN=desk.pyatilistnik.org, OU=Pyatilistnik Inc, O=Pyatilistnik Inc, L=Moscow, ST=Moskow, C=RU correct?
  • [no]: - если все правильно, то вводим yes
  • Enter key password for <*.pyatilistnik.org> - вводим для сертификата
  • (RETURN if same as keystore password): повторяем пароль от сертификата

Создание хранилища ключей ManageEngine ServiceDesk

В пароле не поддерживается символ доллара $

Сделайте резервную копию файла sdp.keystore перед установкой сертификатов. Это резервное хранилище ключей можно использовать в случае неправильной установки сертификата или при обновлении сертификатов в следующем году.

(Если нет сертификата) Теперь создадим CSR запрос на выпуск сертификата, через команду:

keytool -certreq -alias *.pyatilistnik.org -file key.csr -keystore sdp.keystore

В результате у вас в папке с утилитой keytool будет создан файл key.csr, с таким вот содержимым. Его вы будите использовать для выпуска сертификата, если у вас уже есть сертификат, то вы можете пропустить создание CSR.

Создание CSR ManageEngine ServiceDesk

Зная теперь пароль от хранилища сертификатов, вы можете импортировать ваш SSL сертификат, через графический интерфейс. Начнется отправка файла, в моем случае pfx архива.

  • Для файлов .pfx, .keystore или .jks укажите пароль хранилища ключей и нажмите кнопку « Импорт» для установки SSL-сертификата.
  • Для файлов .cer или .crt укажите файл хранилища ключей и пароль и выберите метод загрузки для промежуточного/корневого сертификата. Затем нажмите кнопку « Импорт» для установки SSL-сертификата.
  • Для файла .p7b просто укажите файл хранилища ключей и пароль и нажмите кнопку « Импорт» для установки SSL-сертификата .

Импорт сертификата в ManageEngine ServiceDesk-11

Перезапустите приложение, чтобы изменения вступили в силу. Если у вас есть закрытый ключ в виде файла .key , вам не нужно вводить пароль. Вы можете загрузить не более четырех промежуточных/корневых сертификатов.

Установка сертификата вручную

Имея хранилище сертификатов, выполните действия. Загрузите файлы сертификатов, полученные от ЦС, в каталог, где хранилище ключей (sdp.keystore) было сохранено в процессе создания CSR. Сертификаты должны быть установлены в этом точном хранилище ключей. Если вы попытаетесь установить его в другое хранилище ключей, оно не будет работать.

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

путь сертификации в сертификате

Эти сертификаты обычно имеют формат. cer или .crt. Если ваш сертификат имеет расширение .p7b, следуйте инструкциям, приведенным в разделе Установка сертификата .P7b, чтобы экспортировать сертификаты в формат .cer или .crt. Рассматривая вышеуказанный путь сертификации, мы можем заключить, что нам нужно импортировать два других сертификата перед сертификатом домена. Сначала идет Root, затем Intermediate и, наконец, сертификат домена. Некоторые центры сертификации могут также использовать другой сертификат, который называется Cross Intermediate. Эти сертификаты можно загрузить с веб-сайта Продавца.

Установка файла корневого сертификата

Каждый раз, когда вы устанавливаете сертификат в хранилище ключей, вам будет предложено ввести пароль хранилища ключей, который вы выбрали при создании CSR. Введите следующую команду, чтобы установить файл корневого сертификата:

keytool -import -trustcacerts -alias root -file <имя_файла>.crt -keystore sdp.keystore

Примечание. Выберите «Да», если появится сообщение, что «Сертификат уже существует в хранилище ключей ЦС в рамках всей системы под псевдонимом <Имя псевдонима» > Вы все еще хотите добавить его в свое хранилище ключей? Вы получите подтверждение о том, что «Сертификат был добавлен в хранилище ключей».

Установите промежуточные сертификаты и перекрестные промежуточные сертификаты (если есть). Следуйте инструкциям, предоставленным CA.

keytool -import -trustcacerts -alias промежуточный -file <имя_файла>.crt -keystore sdp.keystore

если есть

keytool -import -trustcacerts -alias cross -file <имя_файла>.crt -keystore sdp.keystore

Вы получите подтверждение о том, что «Сертификат был добавлен в хранилище ключей».

Установка основного сертификата домена

Введите следующую команду для установки основного файла сертификата:

keytool -import -trustcacerts -alias имя псевдонима или домена -file your_domain_name.crt -keystore sdp.keystore

Обратите внимание, что имя псевдонима или домена следует заменить на псевдоним, указанный при создании хранилища ключей. На этот раз вы получите другое подтверждение о том, что «сертификат был установлен в хранилище ключей» .

Если вы хотите доверять сертификату, выберите y или yes. Ваши сертификаты теперь установлены в ваш файл хранилища ключей (sdp.keystore).

Настройка конфигурационных файлов

Теперь осталось поправить некоторые конфигурационные файлы, у разных версий они свои.

Настройка сервера (в версии 9400 и выше)

  • Скопируйте файл sdp.keystore из  <ServiceDesk_Home>\ jre\bin в <ServiceDesk_Home>\ conf
  • В командной строке выполните сценарий changeWebServerPort.bat, чтобы изменить режим подключения на HTTPS.

Cmd > [ServiceDesk Plus Home] \ bin> changeWebServerPort.bat <WEBSERVER_PORT> https

changeWebServerPort.bat

  • Наконец, обновите имя хранилища ключей и пароль, который вы указали в шаге 1, при создании sdp.keystore на файловом сервере. XML присутствует в  <ServiceDesk_Home>\conf

Настройка нофига server.xml

  • Перезапустите службу ManageEngine ServiceDesk Plus, чтобы изменения вступили в силу.

Настройка сервера (в версиях ниже 9400)

  • Скопируйте файл sdp.keystore из  <ServiceDesk_Home> \ jre \ bin  в  <ServiceDesk_Home> \ server \ default \ conf
  • В командной строке выполните   сценарий changeWebServerPort.bat, чтобы изменить режим подключения на HTTPS.

Cmd > [ServiceDesk Plus Home] \ bin> changeWebServerPort.bat <WEBSERVER_PORT> https 

  • Наконец, обновите имя хранилища ключей и пароль, который вы указали в шаге 1, при создании sdp.keystore на файловом  сервере. XML  присутствует в   <ServiceDesk_Home> \ server \ default \ deploy \ jbossweb-tomcat50.sar 
  • Перезапустите службу ManageEngine ServiceDesk Plus, чтобы изменения вступили в силу.

Нюансы ручной установки сертификата .P7b

Некоторые CA предоставят сертификаты с расширением .p7b. В таком случае вы можете дважды щелкнуть этот файл, чтобы открыть консоль, в которой будут перечислены все необходимые сертификаты. Вы можете экспортировать эти сертификаты в файлы X.509 (.cer) в кодировке Base-64.

Затем эти сертификаты можно установить в файл хранилища ключей. Чтобы экспортировать сертификат,

  • Перейдите на [ServiceDesk Plus Home]\ jre \ bin \ domain.P7B
  • Щелкните правой кнопкой мыши сертификат и выберите « Все задачи» -> « Экспорт» .
  • Откроется диалоговое окно мастера экспорта сертификатов. Нажмите кнопку Далее , чтобы продолжить.
  • Выберите формат файла экспорта как X.509 (.cer) в кодировке Base-64 . Нажмите Далее .
  • Укажите имя файла, который вы хотите экспортировать. Нажмите Далее .
  • Мастер экспорта сертификатов успешно завершен. Вы можете проверить настройки, которые вы указали. Нажмите Готово .
  • Сообщение об успехе появляется в диалоговом окне. Нажмите ОК .

Команды для установки сертификатов некоторых распространенных поставщиков

Ниже приведены команды, которые необходимо использовать для установки сертификатов некоторых распространенных поставщиков. Примечание. Эти инструкции могут изменяться в зависимости от сертификатов, выданных ЦС.

  • GoDaddy - Если ваш CA - «GoDaddy» , то следующие шаги:
  1. keytool -import -alias root -keystore <Keystore_Name> .keystore -trustcacerts -file gd_bundle.crt
  2. keytool -import -alias cross -keystore <Keystore_Name> .keystore -trustcacerts -file gd_cross_intermediate.crt
  3. keytool -import -alias промежуточный -keystore <Keystore_Name> .keystore -trustcacerts -file gd_intermediate.crt
  4. keytool -import -alias Псевдоним Указывается при создании хранилища ключей > -keystore <Keystore_Name> .keystore -trustcacerts -file <CertificateName>.ctr
  • Verisign - Если ваш CA - «Verisign» , то следующие шаги:
  1. keytool -import -alias промежуточный CA -keystore <Keystore_Name> .keystore -trustcacerts -file <your_intermediate_certificate_name>.cer
  2. keytool -import -alias < Псевдоним Указывается при создании хранилища ключей > -keystore < Keystore_Name> .keystore -trustcacerts -file <CertificateName>.cer
  • Comodo - Если ваш CA - «Comodo» , то следующие шаги:
  1. keytool -import -trustcacerts -alias root -file AddTrustExternalCARoot.crt -keystore <Keystore_Name>.keystore
  2. keytool -import -trustcacerts -alias addtrust -file UTNAddTrustServerCA.crt -keystore <Keystore_Name>.keystore
  3. keytool -import -trustcacerts -alias ComodoUTNServer -file ComodoUTNServerCA.crt -keystore <Keystore_Name>.keystore
  4. keytool -import -trustcacerts -alias essentialSSL -file essentialSSLCA.crt -keystore <Keystore_Name>.keystore
  5. Keytool -import -trustcacerts -alias <алиас при создании хранилища ключей > -файл <Сертификат-Name> .crt -keystore <Keystore_Name>.keystore

Ручная установка PFX-архива

  • Остановите службу ManageEngine ServiceDesk Plus.
  • Скопируйте файл .pfx в папку   C\ManageEngine\ServiceDesk\conf (где C: диск, на котором установлен ServiceDesk Plus).В версиях ниже 9400 место копирования -  C:\ManageEngine\ServiceDesk\server\default\conf
  • Измените порт веб-сервера на 443 для запуска ServiceDesk Plus в безопасном режиме. Чтобы изменить порт веб-сервера, откройте командную строку и перейдите в [ServiceDesk Plus Home]\bin. Введите команду, как указано ниже,

[ServiceDesk Plus Home] \ bin> changewebserverport.bat 443 https

  • Перейдите  в папку  [ServiceDesk Plus Home] \conf и откройте файл 'server.xml' на панели слов. В версиях ниже 9400 server.xml находится в  папке [ServiceDesk Plus Home]\server\default\deploy\ jbossweb-tomcat50.sar. Найдите ниже записи в файле.

<! - Конфигурация SSL / TLS Connector. Замените имя файла sdp.keystore на имя файла pfx (name.pfx) и введите keystoreType = "pkcs12" после имени файла. Также замените 'sdpsecured' паролем для файла .pfx. Записи должны выглядеть так,

<! - Конфигурация SSL / TLS Connector с использованием хранилища ключей администратора devl

<Connector port = "8443"

maxThreads = "150" minSpareThreads = "25" maxSpareThreads = "75" enableLookups = "true"

схема = "https" безопасный = "правда" clientAuth = "ложь" SSLEnabled = "правда"

keystoreFile = " conf/name.pfx " keystorePass="ваш парольkeystoreType="pkcs12"  sslProtocol = "TLS" sslEnabledProtocols = "TLSv1.2, TLSv1.1, TLSv1"

server = "-" сжатие = "на" maxPostSize = "- 1" сжатиеMinSize = "2048" URIEncoding = "UTF-8" noCompressionUserAgents = "gozilla, traviata" compressableMimeType = "text / css, text / javascript, application / javascript, text / plain, text / html "parseBodyMethods =" POST, PUT, DELETE "/>

Перезапустите службу ManageEngine ServiceDesk Plus. На этом у меня все ,если у вас остались вопросы, то пишите их в комментариях, я постараюсь ответить. С вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.

Автор - Сёмин Иван

6 Responses to Установка сертификата в ManageEngine ServiceDesk

  1. Сергей:

    Спасибо за статью.
    А можно подробнее, как со своего CA вытащить сертификата и подсунуть их в SD?
    У меня как бы я не пытался подсунуть по порядку все сертификаты, на выходе оказывается не доверенным один и без цепочки. Не совсем понимаю суть, что именно от меня нужно.
    Спасибо.

  2. Иван Семин:

    Добрый день! Вам нужно либо создать pfx архив, со всей цепочкой, через Keytool у вас не получилось по очереди подсунуть ключи цепочки?

  3. Сергей:

    залил pfx архив и все заработало. Принял всю цепочку. Через кейтул не получалось.
    спасибо еще раз.

  4. Иван Семин:

    Поздравляю.

  5. Евгений:

    А есть вариант использования lest encrypt?

  6. Иван Семин:

    Вы имеете ввиду прикрутить скрипт lest encrypt, на сколько помню на винде такое было, так что думаю можно

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

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