소개
이 문서에서는 Cisco Cloud Service Platform을 포함하는 KVM(키보드/비디오/마우스) 기반 커널에서 SSMS(Smart Software Manager Satellite) 5.1.0 설치가 실패할 때 발생하는 문제에 대한 해결책을 설명합니다.
문제
설치가 콘솔을 통해 완료되고 UI(사용자 인터페이스)에 액세스할 수 있습니다.
CSSM 등록 설정 프로세스 시 네트워크 등록 및 수동 등록을 수행하는 동안 등록이 실패하는 것을 알 수 있습니다.tomcat 버전은 KVM 기반 시스템에서 검증되고 커널과 JVM(Java Virtual Machine)입니다.JVM은 1.8.0_102-b14 및 커널 3.10.0-514.el7을 실행합니다. 커널이 3.10.0-862.14.4.el7 및 JVM 1.8.0_191-b12를 실행하는 ESXI 기반 설정과 비교해 보십시오.
[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
구성 요소
플랫폼:KVM 기반 커널
소프트웨어:기존 5.1 ISO 이미지
솔루션
1단계. cd/opt/tomcat/logs/로 이동합니다.
2단계. catalina.out 로그를 열고 CSSM을 사용하여 등록 프로세스 시 발생하는 예외를 찾습니다.
IAIK 제공자 IAIK-JCE는 일련의 API를 포함하며 암호화 기능을 구현할 수 있는 Java Cryptography Extension입니다.JDK에 대한 추가 보안 기능을 지원하기 위해 사용됩니다.IAIK jar 파일을 사용할 수 없어 LCS 모듈에서 CSR 요청 파일에 대한 키 쌍을 생성하지 못했습니다.
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단계. 필요한 보안 제공자를 클래스 경로에 배치합니다. cp /opt/tomcat/webapps/Lindos/WEB-INF/lib/iaik_jce-5.1.jar /usr/lib/jvm/java/jre/lib/ext/입니다.
4단계. 다른 모듈에서 jar를 읽을 수 있는지 확인합니다. 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)/e' $java_security.
7단계. IAIK를 목록의 첫 번째 공급자로 삽입합니다(줄바꿈 기호를 이스케이프하는 백슬래시 참고). -i '/security.provider.2/i \
security.provider.1=iaik.security.provider.IAIK' $java_security.
8단계. 명령을 적용하려면 tomcat을 다시 시작하고, systemctl은 tomcat을 재시작합니다.
9단계. 위성을 CSSM에 등록하고 위성 등록이 완료되면 UI를 다시 시작하지 못합니다.
10단계. PEM(Privacy Enhanced Email) 형식을 충족하기 위해 포트 443 및 8443에서 TLS(Transport Layer Security) 연결에 사용되는 x509 인증서를 모두 접습니다. fold -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을 접습니다.
참고:이러한 명령은 64로 인코딩된 PEM 인증서를 손상하므로 다른 행으로 이동할 뿐 아니라 접어서 실행하지 마십시오.
11단계 nginx 시작; systemctl 시작 nginx.
참고:동기화 후 UI가 나타나지 않으면 이러한 인증서가 업데이트/교체되기 때문입니다.따라서 8-10단계를 반복해야 합니다.
다음 단계를 수행한 후 UI에 액세스하면 CSSM과의 사후 동기화 및 최종 등록이 완료된 것을 확인할 수 있습니다.
VA에서 매핑된 라이센스의 인벤토리 및 라이센스 섹션을 볼 수 있습니다.스마트 제품 인스턴스를 Satellite에 등록할 수 있습니다.