المقدمة
يصف هذا المستند حل المشكلة التي تحدث عند فشل تثبيت Smart Software Manager Satellite (SSMS) 5.1.0 في kernel المستند إلى لوحة المفاتيح/الفيديو/الماوس (KVM) الذي يتضمن النظام الأساسي لخدمة السحابة من Cisco.
المشكلة
يتم التثبيت عبر وحدة التحكم ويمكن الوصول إلى واجهة المستخدم (UI).
في وقت إعداد تسجيل CSSM، يلاحظ أن التسجيل يفشل أثناء إجراء التسجيل على الشبكة، بالإضافة إلى التسجيل اليدوي. تم التحقق من صحة إصدار TOMCAT و Kernel و Java Virtual Machine (JVM) في النظام المستند إلى KVM. لاحظ أن JVM يشغل الإصدار 1.8.0_102-b14 و Kernel 3.10.0-514.el7. قارن مع الإعداد القائم على ESXI، حيث يشغل kernel 3.10.0-862.14.4.el7 و JVM 1.8.0_191-b12.
[root@satellite bin]# ./version.sh
Using CATALINA_BASE: /opt/tc
Using CATALINA_HOME: /opt/tc
Using CATALINA_TMPDIR: /opt/tc/temp
Using JRE_HOME: /
Using CLASSPATH: /opt/tc/bin/bootstrap.jar:/opt/tc/bin/tomcat-juli.jar
Using CATALINA_PID: /opt/tomcat/temp/tomcat.pid
Server version: Apache Tomcat/9.0.1
Server built: Sep 27 2017 17:31:52 UTC
Server number: 9.0.1.0
OS Name: Linux
OS Version: 3.10.0-514.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_102-b14
JVM Vendor: Oracle Corporation
المكونات
النظام الأساسي: عنصر kernel القائم على لوحة المفاتيح والفيديو والماوس
البرنامج: Classic 5.1 صورة ISO
الحل
الخطوة 1. انتقل إلى القرص المضغوط/opt/tomcat/log/.
الخطوة 2. افتح سجلات catalyina.out وابحث عن الاستثناء الذي يحدث في وقت عملية التسجيل باستخدام CSSM.
موفر IAIK-JCE هو امتداد تشفير Java يحتوي على مجموعة من واجهات برمجة التطبيقات (API) ويمكنه تنفيذ وظائف التشفير. يتم إستخدامه من أجل دعم وظائف الأمان الإضافية ل JDK. فشلت الوحدة النمطية LCS في إنشاء زوج مفاتيح لملف طلب CSR بسبب عدم توفر ملف IAIK jar.
2019-05-15 20:35:01,604 [http-nio-8080-exec-9] INFO controller.LindosController - Invoked GET /lcsSetupStatus
2019-05-15 20:35:01,606 [http-nio-8080-exec-9] INFO controller.LindosController - LCS Setup Status = 0
2019-05-15 23:53:12,226 [http-nio-8080-exec-10] INFO controller.LindosController - Invoked GET /lcsSetupStatus
2019-05-15 23:53:12,230 [http-nio-8080-exec-10] INFO controller.LindosController - LCS Setup Status = 0
2019-05-15 23:53:12,241 [http-nio-8080-exec-1] INFO controller.LindosController - Invoked /lcsSetup
2019-05-15 23:53:12,243 [http-nio-8080-exec-1] DEBUG controller.LindosController - Setup Status = 0 (0=empty, 1=key/CSR generated, 2=Signer certs installed)
2019-05-15 23:53:12,243 [http-nio-8080-exec-1] DEBUG controller.LindosController - First time setup invoked (ID element not present in JSON). CN=5fc62a80-59a0-0137-54ab-023a01ab3207
2019-05-15 23:53:12,243 [http-nio-8080-exec-1] DEBUG domain.LcsSignerSetup - In LcsSignerSetup
2019-05-15 23:53:12,244 [http-nio-8080-exec-1] DEBUG domain.LcsSignerSetup - Generating Key Pair...
2019-05-15 23:53:12,244 [http-nio-8080-exec-1] ERROR error.RestResponseEntityExceptionHandler - java.security.NoSuchProviderException: no such provider: IAIK
com.cisco.ias.lindos.data.domain.LcsSetupException: java.security.NoSuchProviderException: no such provider: IAIK
at com.cisco.ias.lindos.data.domain.LcsSignerSetup.<init>(LcsSignerSetup.java:50)
at com.cisco.ias.lindos.web.controller.LindosController.setupLcs(LindosController.java:126)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:500)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
2019-05-15 23:53:12,254 [http-nio-8080-exec-2] INFO controller.LindosController - Invoked GET /lcsSetupStatus
2019-05-15 23:53:12,256 [http-nio-8080-exec-2] INFO controller.LindosController - LCS Setup Status = 0
الخطوة 3. ضع موفر الأمان المطلوب في classpath؛ cp /opt/tomcat/webapps/lindos/web-inf/lib/iaik_jce-5.1.jar /usr/lib/jvm/java/jre/lib/ext/.
الخطوة 4. تأكد من أن الجرة قابلة للقراءة بواسطة وحدات أخرى، chmod o+r /usr/lib/jvm/java/jre/lib/ext/iaik_jce-5.1.jar.
الخطوة 5. قم بتخزين مسار ملف java.security إلى متغير مؤقت؛ java_security=/usr/lib/jvm/java/jre/lib/security/java.security.
الخطوة 6. قم بزيادة أولوية الموفرين الموجودين بواسطة perl -pi -e s/^security.provider.(\d+)/"security.provider." . (1$1+1)/e'$java_security.
الخطوة 7. أدرج IAIK كأول موفر في القائمة (لاحظ شرطة مائلة خلفية تفلت من خط جديد)؛ sed -i '/security.provider.2/i \
security.provider.1=iaik.security.provider.iaik'$java_security.
الخطوة 8. قم بإعادة تشغيل TOMCAT للتغييرات ليتم تطبيقها باستخدام الأمر؛ أعد تشغيل النظام ل TOMCAT.
الخطوة 9. قم بتسجيل القمر الصناعي باستخدام CSSM وعندما يكتمل التسجيل في القمر الصناعي، لن يتم إعادة تشغيل واجهة المستخدم.
الخطوة 10. قم بطيء كلا من شهادات x509 المستخدمة لاتصالات أمان طبقة النقل (TLS) على المنافذ 443 و 8443 من أجل تلبية تنسيق البريد الإلكتروني المحسن للخصوصية (PEM)، طي -w 64 /drbd/certs/rails_ssl.crt > /drbd/certs/rails_ssl_folded.crt & mv /drbd/certs/rails_ssl_folded.crt /drbd/certs/rails_ssl.crt
طي -w 64 /drbd/certs/pi_ssl.crt > /drbd/certs/pi_ssl_folded.crt & MV /drbd/certs/pi_ssl_folded.crt /drbd/certs/pi_ssl.crt.
ملاحظة: لا تقوم بتنفيذ هذه الأوامر طي وكذلك نقل في سطر مختلف لأنها تفسد شهادة PEM التي تم ترميزها 64.
الخطوة 11.ابدأ nginx؛ ابدأ NGINX للنظام.
ملاحظة: في حالة فشل واجهة المستخدم في الظهور بعد المزامنة، فهذا يرجع إلى تحديث/إستبدال هذه النتائج. وبالتالي، سيتعين تكرار الخطوات 8-10.
بعد اتباع هذه الخطوات، يمكنك الوصول إلى واجهة المستخدم ويمكنك مشاهدة المزامنة اللاحقة مع CSSM والتسجيل النهائي.
يمكنك رؤية قسم المخزون والترخيص الترخيص المعين من VA. يمكنك تسجيل مثيلات المنتجات الذكية على القمر الصناعي.