Can Anyone Kindly share me DOC for server up of OpenELIS and HAPI-FHIR Server via docker-compose

Can Anyone Kindly share me DOC for server op of OpenELIS and HAPI-FHIR Server via docker-compose

1 Like

You’d almost certainly get a better response by asking this question on the OpenELIS forum.

1 Like

Thanks for providing me a needful link.

Hi @nehat1009 - Apologies, but are you asking for a document or a docker container or ? I lead the group stewarding the OpenELIS codebase and can get you connected once I know what you are needing. Thanks!

Hello janflower, thanks for your reply!!. I want to integrate OpenELIS with OpenMRS . for which am trying to do code setup of OpenELIS via docker, by following this doc(Code Setup for openELIS) I have taken code checkout of openELIS-Global2 GITHUB. In this docker-compose file, I have uncommented for openELIS service. So far now, in my understanding openELIS is communicating with Hapi-fhir-jpa-server. Initiailly, I was using keystore and trustore which is committed in this github URL, but was getting invalid or bad certificate. so that, I generated new trustore and keystore by following commands :

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
2.
sudo mkdir /etc/openelis-global/
3.
sudo openssl pkcs12 -inkey /etc/ssl/private/apache-selfsigned.key -in /etc/ssl/certs/apache-selfsigned.crt -export -out /etc/openelis-global/keystore
4.sudo keytool -import -alias oeCert -file /etc/ssl/certs/apache-selfsigned.crt -storetype pkcs12 -keystore /etc/openelis-global/truststore

and put export password -> empty

I replaced this file with ones present in code set under http folder of dev folder. And remove testtest password of trustore-password and keystore password and make it empty. And after that I rebuild image and up docker compose file again. But getting this below error now , can you please help me out in this or Can we run dev setup without SSL. if yes, then what step should we need to follow.

openelisglobal-webapp | 15-Oct-2020 06:21:08.646 WARNING [main] org.apache.tomcat.util.net.SSLUtilBase.<init> The JSSE TLS 1.3 implementation does not support authentication after the initial handshake and is therefore incompatible with optional client authentication
openelisglobal-webapp | 15-Oct-2020 06:21:09.196 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8443]]
openelisglobal-webapp |         org.apache.catalina.LifecycleException: Protocol handler initialization failed
openelisglobal-webapp |                 at org.apache.catalina.connector.Connector.initInternal(Connector.java:1077)
openelisglobal-webapp |                 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
openelisglobal-webapp |                 at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
openelisglobal-webapp |                 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
openelisglobal-webapp |                 at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:848)
openelisglobal-webapp |                 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
openelisglobal-webapp |                 at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
openelisglobal-webapp |                 at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
openelisglobal-webapp |                 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
openelisglobal-webapp |                 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
openelisglobal-webapp |                 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
openelisglobal-webapp |                 at java.base/java.lang.reflect.Method.invoke(Method.java:566)
openelisglobal-webapp |                 at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302)
openelisglobal-webapp |                 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
openelisglobal-webapp |         Caused by: java.lang.IllegalArgumentException: the trustAnchors parameter must be non-empty
openelisglobal-webapp |                 at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:100)
openelisglobal-webapp |                 at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:72)
openelisglobal-webapp |                 at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:246)
openelisglobal-webapp |                 at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1118)
openelisglobal-webapp |                 at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:222)
openelisglobal-webapp |                 at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:587)
openelisglobal-webapp |                 at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:75)
openelisglobal-webapp |                 at org.apache.catalina.connector.Connector.initInternal(Connector.java:1075)
openelisglobal-webapp |                 ... 13 more
openelisglobal-webapp |         Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
openelisglobal-webapp |                 at java.base/java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
openelisglobal-webapp |                 at java.base/java.security.cert.PKIXParameters.<init>(PKIXParameters.java:157)
openelisglobal-webapp |                 at java.base/java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:130)
openelisglobal-webapp |                 at org.apache.tomcat.util.net.SSLUtilBase.getParameters(SSLUtilBase.java:501)
openelisglobal-webapp |                 at org.apache.tomcat.util.net.SSLUtilBase.getTrustManagers(SSLUtilBase.java:432)
openelisglobal-webapp |                 at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:245)
openelisglobal-webapp |                 at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:98)
openelisglobal-webapp |                 ... 20 more
o

Now , I am getting this below error

hapi-fhir-jpaserver  |  javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate                                                                       
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)                                                                          
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)                                                                          
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308)                                                                 
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:285)                                                                       
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:181)                                                              
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)                                                                        
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1155)                                                                     
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1125)                                                      
hapi-fhir-jpaserver  |  at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:823)                                                         
hapi-fhir-jpaserver  |  at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)                                                   
hapi-fhir-jpaserver  |  at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)                                                   
hapi-fhir-jpaserver  |  at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)                                                     
hapi-fhir-jpaserver  |  at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)                                            
hapi-fhir-jpaserver  |  at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)                                             
hapi-fhir-jpaserver  |  at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)                                                          
hapi-fhir-jpaserver  |  at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)                               
hapi-fhir-jpaserver  |  at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)                                                              
hapi-fhir-jpaserver  |  at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)                                                 
hapi-fhir-jpaserver  |  at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)                                                           
hapi-fhir-jpaserver  |  at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)                                                               
hapi-fhir-jpaserver  |  at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)                                                                   
hapi-fhir-jpaserver  |  at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)                                                                          
hapi-fhir-jpaserver  |  at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)                                                                   
hapi-fhir-jpaserver  |  at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)                                                        
hapi-fhir-jpaserver  |  at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)                                                         
hapi-fhir-jpaserver  |  at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)                                                        
hapi-fhir-jpaserver  |  at ca.uhn.fhir.jpa.starter.interceptor.OEForwardingInterceptor.incomingRequestPreHandled(OEForwardingInterceptor.java:78)                       
hapi-fhir-jpaserver  |  at jdk.internal.reflect.GeneratedMethodAccessor363.invoke(Unknown Source)                                                                       
hapi-fhir-jpaserver  |  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                                     
hapi-fhir-jpaserver  |  at java.base/java.lang.reflect.Method.invoke(Method.java:566)                                                                                   
hapi-fhir-jpaserver  |  at ca.uhn.fhir.interceptor.executor.InterceptorService$HookInvoker.invoke(InterceptorService.java:497)                                          
hapi-fhir-jpaserver  |  at ca.uhn.fhir.interceptor.executor.InterceptorService.doCallHooks(InterceptorService.java:271)                                                 
hapi-fhir-jpaserver  |  at ca.uhn.fhir.interceptor.executor.InterceptorService.callHooks(InterceptorService.java:260)                                                   
hapi-fhir-jpaserver  |  at ca.uhn.fhir.rest.server.method.BaseMethodBinding.invokeServerMethod(BaseMethodBinding.java:232)                                              
hapi-fhir-jpaserver  |  at ca.uhn.fhir.rest.server.method.TransactionMethodBinding.invokeServer(TransactionMethodBinding.java:119)                                      
hapi-fhir-jpaserver  |  at ca.uhn.fhir.rest.server.method.BaseResourceReturningMethodBinding.doInvokeServer(BaseResourceReturningMethodBinding.java:245)                
hapi-fhir-jpaserver  |  at ca.uhn.fhir.rest.server.method.BaseResourceReturningMethodBinding.invokeServer(BaseResourceReturningMethodBinding.java:382)                  
hapi-fhir-jpaserver  |  at ca.uhn.fhir.rest.server.RestfulServer.handleRequest(RestfulServer.java:991)                                                                  
hapi-fhir-jpaserver  |  at ca.uhn.fhir.rest.server.RestfulServer.doPost(RestfulServer.java:346)                                                                         
hapi-fhir-jpaserver  |  at ca.uhn.fhir.rest.server.RestfulServer.service(RestfulServer.java:1681)                                                                       
hapi-fhir-jpaserver  |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)                                                                                 
hapi-fhir-jpaserver  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)                                            
hapi-fhir-jpaserver  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)                                                    
hapi-fhir-jpaserver  |  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)                                                                       
hapi-fhir-jpaserver  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)                                            
hapi-fhir-jpaserver  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)                                                    
hapi-fhir-jpaserver  |  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)                                                          
hapi-fhir-jpaserver  |  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)                                                           
hapi-fhir-jpaserver  |  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)                                                       
hapi-fhir-jpaserver  |  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)                                                                
hapi-fhir-jpaserver  |  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)                                                                 
hapi-fhir-jpaserver  |  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)                                                             
hapi-fhir-jpaserver  |  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)                                                                  
hapi-fhir-jpaserver  |  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)                                                                   
hapi-fhir-jpaserver  |  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)                                                             
hapi-fhir-jpaserver  |  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)                                                      
hapi-fhir-jpaserver  |  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1839)                                                          
hapi-fhir-jpaserver  |  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)                                                              
hapi-fhir-jpaserver  |  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)                                                    
hapi-fhir-jpaserver  |  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)                                                    
hapi-fhir-jpaserver  |  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)                                                           
hapi-fhir-jpaserver  |  at java.base/java.lang.Thread.run(Thread.java:834)                                                                                              
hapi-fhir-jpaserver  | 2020-10-15 10:18:38.415 [https-jsse-nio-8443-exec-7] ERROR c.u.f.j.s.i.OEForwardingInterceptor [OEForwardingInterceptor.java:90]  $$$$$$$$ exception in OEFORWARD javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate