Как включить HTTPS для встроенного кота в Denodo?

Я хотел бы включить https для всех моих входящих веб-запросов к Denodo, используя самозаверяющий сертификат. Как мне это сделать?

(Denodo поставляется со встроенной JRE и Tomcat)

(я публикую этот вопрос и добавляю ответ в надежде, что он окажется полезным для кого-то другого)


person Colorado Techie    schedule 08.10.2014    source источник


Ответы (1)


Включение HTTPS с самозаверяющим сертификатом состоит из нескольких шагов:

  1. Создайте пару ключей и добавьте ее в хранилище ключей.
  2. Извлеките сертификат из вашей пары ключей в хранилище ключей
  3. Добавьте свой сертификат во встроенный файл JRE cacerts.
  4. Настройте Denodo Tomcat для использования вашего хранилища ключей и файла cacerts по умолчанию.

ПРИМЕЧАНИЕ. Если вы хотите использовать собственное хранилище доверенных сертификатов (вместо встроенных cacerts), вы можете это сделать, ваши шаги будут немного отличаться, но общая идея та же.

ПРИМЕЧАНИЕ 2. Если вы хотите использовать подписанный сертификат, применяется то же правило... ваши шаги будут немного отличаться, но общая идея та же... (вместо импорта вашего сертификата в файл cacerts вам нужно будет сгенерировать запрос на подпись сертификата и получить его подпись).

Шаг 1. Создайте пару ключей и добавьте ее в новое хранилище ключей.

На вашем сервере denodo выполните следующее:

$ /lclapps/denodo/jre/bin/keytool -genkey -alias nvdrdenodo2 -keyalg RSA -keystore 

~/command_line.keystore`enter code here`
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  first_last
What is the name of your organizational unit?
  [Unknown]:  Technology
What is the name of your organization?
  [Unknown]:  My OU
What is the name of your City or Locality?
  [Unknown]:  San Francisco
What is the name of your State or Province?
  [Unknown]:  CA
What is the two-letter country code for this unit?
  [Unknown]:  US
Is CN=first_last, OU=Technology, O=My OU, L=San Francisco, ST=CA, C=US correct?
  [no]:  yes
Enter key password for <nvdrdenodo2>
        (RETURN if same as keystore password):

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

Шаг 2. Извлеките ключ как сертификат в формате PEM.

Выполните следующую команду и обязательно укажите пароль, который вы использовали на шаге 1.

/lclapps/denodo/jre/bin/keytool -exportcert -alias nvdrdenodo2 -keystore ~/command_line.keystore -storepass MyPassword -rfc -file ~/nvdrdenodo2.cer

Шаг 3. Импортируйте файл .cer во встроенный файл cacerts JRE.

/lclapps/denodo/jre/bin/keytool -import -alias nvdrdenodo2 -keystore /lclapps/denodo/jre/lib/security/cacerts -file ~/nvdrdenodo2.cer
Enter keystore password:
Owner: CN=first_last, OU=Technology, O=My OU, L=San Francisco, ST=CA, C=US
Issuer: CN=first_last, OU=Technology, O=My OU, L=San Francisco, ST=CA, C=US
Serial number: 54341d2a
Valid from: Tue Oct 07 11:04:42 MDT 2014 until: Mon Jan 05 10:04:42 MST 2015
Certificate fingerprints:
         MD5:  3A:9F:37:16:3F:17:9B:BF:3A:95:CE:2C:ED:8A:FF:22
         SHA1: 6A:9E:75:68:7A:33:2C:F9:E3:11:01:CC:2E:7B:00:4C:B8:D2:E6:AF
         Signature algorithm name: SHA1withRSA
         Version: 3
Trust this certificate? [no]:  yes
Certificate was added to keystore
Certificate stored in file </home/user_account/nvdrdenodo2.cer>

Шаг 4. Обновите файл $DENODO_HOME/resources/apache-tomcat/conf/tomcat.properties.

Теперь мы настраиваем tomcat для использования нашего хранилища ключей и оставляем строки хранилища доверенных сертификатов закомментированными, поскольку по умолчанию он будет использовать встроенный файл JRE cacerts.

vi /lclapps/denodo/resources/apache-tomcat/conf/tomcat.properties

com.denodo.tomcat.home=/lclapps/denodo-5.0/resources/apache-tomcat
com.denodo.tomcat.http.port=9090
com.denodo.tomcat.shutdown.port=9099
com.denodo.tomcat.jmx.port=9098
com.denodo.tomcat.engine.name=DenodoPlatform-5.0
com.denodo.tomcat.export.dirname=export
com.denodo.tomcat.http.log=true
com.denodo.tomcat.https.enable=true
com.denodo.tomcat.https.port=9443
com.denodo.security.ssl.enabled=true
com.denodo.security.ssl.keyStore=/home/user_account/command_line.keystore
com.denodo.security.ssl.keyStorePassword=password
#com.denodo.security.ssl.trustStore=
#com.denodo.security.ssl.trustStorePassword=
java.env.DENODO_OPTS_START=-Xmx2056m -XX\:MaxPermSize\=256m

Перезапустите и проверьте

Перезапустите Denodo и перейдите на https://yourserver:9443/denodo-restfulws/admin и посмотрите, работает ли он (или перейдите на любой URL-адрес опубликованного веб-сервиса). Вы должны получить ошибку сертификата:

Cert error

Добавьте исключение, и теперь вы получаете доступ к Denodo Tomcat через HTTPS со своим собственным сертификатом!

person Colorado Techie    schedule 08.10.2014