ممکنه وقتی Oracle Fusion Middleware یا Oracle WebLogic Server 12c رو نصب کرده باشید موقع استارت و یا اجرای اسکریپت autostart وبلاجیک به خطای زیر برخورد کرده باشید:
"weblogic.nodemanager.common.ConfigException: Identity key store file not found"
همونطور که خطا مشخص کرده دنبال موجودیتی به نام DemoIdentity.jks هستیم که در دایرکتوری security دامنه سرور وبلاجیک آن را پیدا نمیکنیم. خطای کلی مشابه زیر است:
سرور وبلاجیک
<Feb 6, 2018 10:16:38,503 PM JST> <Alert> <Security> <BEA-090165> <Cannot find identity keystore file /home/wls/12213/user_projects/domains/base_domain/security/DemoIdentity.jks on server AdminServer>
<Feb 6, 2018 10:16:38,504 PM JST> <Error> <WebLogicServer> <BEA-000297> <Inconsistent security configuration, weblogic.management.configuration.ConfigurationException: Cannot find identity keystore file /home/wls/12213/user_projects/domains/base_domain/security/DemoIdentity.jks on server AdminServer>
<Feb 6, 2018 10:16:38,504 PM JST> <Emergency> <Security> <BEA-090034> <Not listening for SSL, weblogic.management.configuration.ConfigurationException: Cannot find identity keystore file /home/wls/12213/user_projects/domains/base_domain/security/DemoIdentity.jks on server AdminServer.>
<Feb 6, 2018 10:16:38,505 PM JST> <Error> <Server> <BEA-002606> <The server is unable to create a server socket for listening on channel "DefaultSecure[iiops][5]". The address 127.0.0.1 might be incorrect or another process is using port 7002: java.io.IOException: Cannot find identity keystore file /home/wls/12213/user_projects/domains/base_domain/security/DemoIdentity.jks on server AdminServer>
نود منیجیر
<Feb 6, 2018 9:58:31 PM JST> <INFO> <Loading identity key store: FileName=/home/wls/12213/user_projects/domains/base_domain/security/DemoIdentity.jks, Type=jks, PassPhraseUsed=true>
<Feb 6, 2018 9:58:31 PM JST> <SEVERE> <Fatal error in NodeManager server>
weblogic.nodemanager.common.ConfigException: Identity key store file not found: /home/wls/12213/user_projects/domains/base_domain/security/DemoIdentity.jks
at weblogic.nodemanager.server.SSLConfig.loadKeyStoreConfig(SSLConfig.java:225)
at weblogic.nodemanager.server.SSLConfig.access$000(SSLConfig.java:33)
at weblogic.nodemanager.server.SSLConfig$1.run(SSLConfig.java:118)
at java.security.AccessController.doPrivileged(Native Method)
at weblogic.nodemanager.server.SSLConfig.<init>(SSLConfig.java:115)
at weblogic.nodemanager.server.NMServer.<init>(NMServer.java:169)
at weblogic.nodemanager.server.NMServer.getInstance(NMServer.java:134)
at weblogic.nodemanager.server.NMServer.main(NMServer.java:589)
at weblogic.NodeManager.main(NodeManager.java:31)
این مشکل به خاطر این است که نسخه وبلاجیک نصب شده توسط شما با نسخه جاوای مورد استفاده Certified شده برای محصول نیست به طور مشخص در اکثر مواقع به خاطر استفاده از جاوای ورژن بالاتر JDK 1.8.0_171 یا JDK 1.7.0_171 و یا نسخههای جدیدتر از JDK که برای FMW و WLS 12C استفاده شده است.
دلیل اصلی ایجاد خطای فوق این است که DemoIdentity.jks توسط ویزارد پیکربندی ایجاد نشده و دلیل آنکه ویزارد نتوانسته این فایل را ایجاد کند مشکل در فراخوانی و اجرای Utils.CertGen به دلایل امنیتی در نسخههای جدید JDK و یا اجرای OpenJDK به عنوان جاوا پیشفرض سیستمعامل بوده است.
فرزندان من بدانید و آگاه باشید که توصیه شده در نصب استاندارد سیستمعامل برای همه محصولات اوراکل OpenJDK یا همان پکیج Java Platform نصب نگردد.
▌ : uncheck : Base System -> Java Platform
اگر نصب سیستمعامل را خودتان انجام نمیدهید حتما موارد فوق و لیست پکیجها را به ادمین سیستمعامل اطلاع دهید.
همچنین مطالعه مطلب زیر میتواند مفید واقع گردد:
ویزارد پیکربندی WLS باید هنگام عملیات پیکربندی فایل DemoIdentity.jks را در $DOMAIN_HOME/security با کتابخانه utils.CertGen بسازد. خود DemoIdentity.jks یک محفظه برای نگهداری کلیدهای(keystore) اجازهنامههای SSL پیشفرض JDK است.
در مجموع این مشکل یک باگ در JDKهای جدید به شمارههای زیر است:
Bug 27267206 - JDK8U161+ AND UTILS.CERTGEN
Bug 27117282 - CERTGEN FAILS WITH JDK8 CPU (180161, B04, B05, B06)
برای حل این مشکل ۴ راهحل موجود است:
- اعمال آخرین PSU یا Patch Set Update برای سرور وبلاجیک و اجرای دوباره پیکربندی (config.sh/config.cmd)
در PSU ریلیز شده در تاریخ January 2018 و بالاتر باگ 27117282 فیکس شده است. پس فایل DemoIdentity.jks توسط ویزارد پیکربندی به صورت عادی فقط بعد از اعمال آخرین PSU ایجاد میشود.
تو این راهحل شما باید آخرین PSU رو بعد از نصب سرور وبلاجیک و قبل از فراخوانی ویزارد پیکربندی اعمال کنید.
برای دانلود آخرین CPU/PSU به لینک زیر مراجعه کنید:
CPU stand for Critical Patch Updates
PSU stand for Patch Set Update
Patch Set Update (PSU) Release Listing for Oracle WebLogic Server (WLS) (Doc ID 1470197.1)
اگر دسترسی به پشتیبانی اوراکل ندارید از لینک زیر آخرین Critical Patch Updates, Security Alerts and Bulletins Security Alerts Chicklet را دانلود و اعمال کنید:
https://www.oracle.com/technetwork/topics/security/alerts-086861.html
- ساخت دوباره DemoIdentity.jks و استارت سرور وبلاجیک و نود منیجر
شما میتونید با آپشن "noskid" فایل DemoIdentity.jks را با کتابخانه utils.CertGen از نو ایجاد کنید
نوتهای زیر را برای اطلاعات بیشتر از ساپورت اوراکل مطالعه کنید:
با دنبال کردن مراحل زیر به سادگی در سیتسمعاملهای Linux/UNIX میتوانید فایل مربوط را دوباره از ابتدا ایجاد کنید:
> . <WL_HOME>/server/bin/setWLSEnv.sh
> cd $DOMAIN_HOME/security
> java utils.CertGen -keyfilepass DemoIdentityPassPhrase -certfile democert -keyfile demokey -strength 2048 -noskid
> java utils.ImportPrivateKey -keystore DemoIdentity.jks -storepass DemoIdentityKeyStorePassPhrase -keyfile demokey.pem -keyfilepass DemoIdentityPassPhrase -certfile democert.pem -alias demoidentity
نکته: این مساله ممکنه در سایر Oracle Home ها و دامنههای وبلاجیک نیز ایجاد گردد.
حالا میتونید سرور وبلاجیک و نود منیجر رو استارت کنید.
- راهحل سوم خیلی ساده است از ورژنهای جدید جاوا استفاده نکنید
خب طبیعیه وقتی محصولی با وابستگی به محصول دیگهای داره تا آخرین نسخهای که در اون زمان وجود داشته ساپورت انجام بشه و نسخههای آینده چون هنوز نیومدهاند پس تست نشدهاند ممکنه سازگاری نداشته باشند. برای دانلود تمام نسخههای قدیمی جاوا به لینک زیر از ساپورت اوراکل مراجعه کنید:
همچنین مطالعه نوت زیر به شدت پیشنهاد میشه:
"Note 1492980.1 How to Install and Maintain the Java SE Installed or Used with FMW 11g/12c Products"
برای چک کردن سازگاری محصولات و نسخههای مختلف به قسمت Certifications در ساپورت اوراکل مراجعه کنید.
- راهحل چهارم ساخت یک keystore سفارشی و استفاده به عنوان demo certificate است
شما میتونید از keystore خودتون برای demo keystore (DemoIdentity.jks) استفاده کنید. بعد از کپی کردن keystore خودتون سرور وبلاجیک و نود منیجر رو میتونید استارت کنید.
لینک زیر به شما در پیادهسازی این مفهوم کمک خواهد کرد:
https://docs.oracle.com/middleware/12213/wls/SECMG/identity_trust.htm
منبع: