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

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

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

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

1 ответ

Решение

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

  1. Создайте пару ключей и добавьте ее в хранилище ключей
  2. Извлеките сертификат из вашей пары ключей в вашем хранилище ключей
  3. Добавьте ваш сертификат во встроенный файл JRE cacerts
  4. Настройте Denodo Tomcat для использования вашего хранилища ключей и файла 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-адресу опубликованного веб-сервиса). Вы должны получить ошибку сертификата:

Ошибка

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

Другие вопросы по тегам