Запустите сервер WebLogi c с пользовательской конфигурацией SSL - PullRequest
0 голосов
/ 06 апреля 2020

В настоящее время я немного экспериментирую с Oracle WebLogi c Сервер 12 c. Я настроил новый домен для экспериментов с SSL. Я уже создал собственное хранилище идентификаторов, сертификат и траст, следуя приведенным ниже инструкциям: https://helpx.adobe.com/uk/experience-manager/6-3/forms/using/admin-help/configuring-ssl-weblogic-server.html#creating_an_ssl_credential_for_use_on_weblogic_server

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

Пока все хорошо. Но когда я создаю управляемый сервер и настраиваю его так, чтобы он также использовал мои собственные идентификационные данные, доверие и сертификат и сохранял настройки в консоли администратора, я не могу загрузить сервер, используя предоставленный startManagedWebLogi c. sh скрипт. Причина сбоя заключается в том, что сервер пытается использовать DemoCert и DemoTrust, как я вижу в журналах. Следовательно, он не может подключиться к AdminServer и не может загрузить его конфиги.

Вот моя проблема: как запустить управляемый сервер с пользовательскими настройками SSL, если настройки по умолчанию всегда используются для его запуска в первое место? Есть ли способ изменить сценарии запуска, чтобы использовать разные значения по умолчанию? Или есть другая «лучшая практика»?

Ошибка сервера, который не запускается:

<Apr 6, 2020 2:40:46,041 PM CEST> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: A MultiException has 6 exceptions.  They are:
1. weblogic.security.SecurityInitializationException: Authentication for user weblogic denied.
2. java.lang.IllegalStateException: Unable to perform operation: post construct on weblogic.security.SecurityService
3. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.jndi.internal.RemoteNamingService errors were found
4. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.jndi.internal.RemoteNamingService
5. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.io.common.internal.FileService errors were found
6. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.io.common.internal.FileService

A MultiException has 6 exceptions.  They are:
1. weblogic.security.SecurityInitializationException: Authentication for user weblogic denied.
2. java.lang.IllegalStateException: Unable to perform operation: post construct on weblogic.security.SecurityService
3. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.jndi.internal.RemoteNamingService errors were found
4. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.jndi.internal.RemoteNamingService
5. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.io.common.internal.FileService errors were found
6. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.io.common.internal.FileService

    at org.jvnet.hk2.internal.Collector.throwIfErrors(Collector.java:89)
    at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:250)
    at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:358)
    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487)
    at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:305)
    Truncated. see log file for complete stacktrace
Caused By: weblogic.security.SecurityInitializationException: Authentication for user weblogic denied.
    at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.doBootAuthorization(CommonSecurityServiceManagerDelegateImpl.java:1158)
    at weblogic.security.service.CommonSecurityServiceManagerDelegateImpl.postInitialize(CommonSecurityServiceManagerDelegateImpl.java:1272)
    at weblogic.security.service.SecurityServiceManager.postInitialize(SecurityServiceManager.java:586)
    at weblogic.security.SecurityService.start(SecurityService.java:130)
    at weblogic.server.AbstractServerService.postConstruct(AbstractServerService.java:76)
    Truncated. see log file for complete stacktrace
Caused By: javax.security.auth.login.FailedLoginException: [Security:090938]Authentication failure: The specified user failed to log in. weblogic.security.providers.authentication.LDAPAtnDelegateException: [Security:090295]caught unexpected exception, No such object
    at com.bea.common.security.utils.ExceptionHandler.throwFailedLoginException(ExceptionHandler.java:62)
    at weblogic.security.providers.authentication.LDAPAtnLoginModuleImpl.login(LDAPAtnLoginModuleImpl.java:369)
    at com.bea.common.security.internal.service.LoginModuleWrapper$1.run(LoginModuleWrapper.java:117)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.bea.common.security.internal.service.LoginModuleWrapper.login(LoginModuleWrapper.java:114)
    Truncated. see log file for complete stacktrace
>

Я проверил имя пользователя и пароль, они были введены правильно.

РЕДАКТИРОВАТЬ: Если я отключаю порт администратора и запускаю управляемый сервер с

startManagedWeblogic ms0 t3://localhost:7001 (1)

вместо

startManagedWeblogic ms0 t3s://localhost:9001 (2)

, сервер запускается, как предполагалось. Последовательные запуски с ENABLED административным портом (2) действительно успешны, несмотря на постоянные проблемы при попытке доступа к административному серверу во время запуска.

РЕДАКТИРОВАТЬ 2: я попытался использовать NodeManager для этого, благодаря ответу ниже , К сожалению, я не могу получить к нему доступ из консоли администратора из-за исключения SSL:

javax.net.ssl.SSLHandshakeException

Я обнаружил, что мне нужно настроить Nodemanager, чтобы он также использовал пользовательские настройки ssl в файле nodemanager.properties. Я использовал следующие настройки:

## SSL ##
# Configure default SSL
KeyStores=CustomIdentityAndCustomTrust

# Identity keystore
CustomIdentityKeyStoreFileName=/home/iffuw/feck-credentials.jks
CustomIdentityKeyStoreType=jks
CustomIdentityKeyStorePassPhrase=whatever

# private key
CustomIdentityAlias=feck-credentials
CustomIdentityPrivateKeyPassPhrase=whatever

# Trust keystore
CustomTrustKeyStoreFileName=/home/iffuw/feck-ca.jks
CustomTrustKeyStoreType=jks
CustomTrustKeyPassPhrase=whatever
CustomTrustKeyStorePassPhrase=whatever

Обратите внимание, что парольные фразы - это не все, но парольные фразы для двух хранилищ ключей (Id и Trust) идентичны. Когда я запускаю nodemanger, парольные фразы из блоков ключей и идентификаторов шифруются. Ключевая фраза из блока доверия оказывается пустой. Что-то может go здесь не так, но я не знаю что. Любые идеи? В nodemanager.log написано:

<Apr 6, 2020 4:30:40 PM CEST> <INFO> <Upgrade> <Removing NodeManager property: CustomTrustKeyStorePassPhrase>

это нормально?

1 Ответ

0 голосов
/ 06 апреля 2020

в скрипте startManagedWebLogi c. sh необходимо установить параметр:

-Djavax.net.ssl.trustStore=/YOUR_PATH/CustomTrust.jks 

Более полезные (пример) параметры SSL / JKS:

-Djavax.net.debug=ssl
-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.keyStore=client.p12
-Djavax.net.ssl.keyStorePassword=whatever
-Djavax.net.ssl.trustStoreType=jks
-Djavax.net.ssl.trustStore=client-truststore.jks
-Djavax.net.ssl.trustStorePassword=whatever

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

...