Arpad and Chris,

Am 2019-10-22 18:07, schrieb Christopher Schultz:
Magosányi,

On 10/22/19 11:09, Magosányi Árpád wrote:
As I understand you are suggesting to use direct connection to the database.
The servlet needs a JNDI datasource, and the question is about
configuring that datasource in tomcat.
As I can modify the servlet, I could choose to set up hibernate in other
ways, but I would like to separate the concerns of providing the
database and using it between the operations staff and development.
And JNDI is exactly for that.

I think Peter was suggesting that you change your connection URL and
the format of your keystore.


+1

PKCS#8 is not a recognized format for Java keystores; you'll need to
use JKS or PKCS#12 (recommended, as JKS is being deprecated).


I was looking for the right type name. Thanks Chris.

Peter

-chris

On 10/22/19 2:27 PM, logo wrote:
Arpad,

have you tried sth like this:

         StringBuffer sb = new
StringBuffer("jdbc:postgresql://infra.kodekonveyor.com:5432/users?useSSL=true&useUnicode=true&characterEncoding=UTF-8&");
         sb.append("user=market&password=<pw>&");
sb.append("clientCertificateKeyStoreUrl=file:////var/lib/tomcat9/.postgresql/client.jks&");
         sb.append("clientCertificateKeyStorePassword=changeit");

         Connection c = DriverManager.getConnection(sb.toString());

and convert the pem certificate to JKS/P12 ? I have this working in
mysql...

Peter

Am 2019-10-22 12:56, schrieb Magosányi Árpád:
Hi!

Anyone have a postgresql jndi datasource with certificate authentication
working?

I have the following in context.xml:

         <Resource name="jdbc/users" auth="Container"
           type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://infra.kodekonveyor.com:5432/users?ssl=true&amp;sslmode=verify-ca"

           username="market" maxTotal="20" maxIdle="10"
           maxWaitMillis="-1"/>

I have this in ~tomcat/.postgresql:

root@market:/var/lib/tomcat9/.postgresql# ls -lL
total 11
-rw-r--r-- 1 root   root 4597 Oct 21 12:49 postgresql.crt
-r-------- 1 tomcat root 1329 Oct 21 17:40 postgresql.pk8
-rw-r--r-- 1 root   root 1493 Oct 21 12:49 root.crt

where the crt file is a pem client certificate, root.crt is the ca cert,
and pk8 is the client key in der pkcs-8 format.

The logs:

      NOTE: Picked up JDK_JAVA_OPTIONS:
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
      Server version name:   Apache Tomcat/9.0.16 (Ubuntu)
      Server built:          Sep 11 2019 19:47:51 UTC
      Server version number: 9.0.16.0
      OS Name:               Linux
      OS Version:            4.15.0-65-generic
      Architecture:          amd64
      Java Home:             /usr/lib/jvm/java-11-openjdk-amd64
      JVM Version:           11.0.4+11-post-Ubuntu-1ubuntu218.04.3
      JVM Vendor:            Ubuntu
      CATALINA_BASE:         /var/lib/tomcat9
      CATALINA_HOME:         /usr/share/tomcat9
Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
      Command line argument:
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
      Command line argument:
-Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties
      Command line argument:
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
      Command line argument: -Djava.awt.headless=true
      Command line argument: -XX:+UseG1GC
      Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
      Command line argument:
-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
      Command line argument:
-Dorg.apache.catalina.security.SecurityListener.UMASK=0027
      Command line argument: -Dignore.endorsed.dirs=
      Command line argument: -Dcatalina.base=/var/lib/tomcat9
      Command line argument: -Dcatalina.home=/usr/share/tomcat9
      Command line argument: -Djava.io.tmpdir=/tmp
Loaded APR based Apache Tomcat Native library [1.2.21] using APR
version [1.6.3].
      APR capabilities: IPv6 [true], sendfile [true], accept filters
[false], random [true].
      APR/OpenSSL configuration: useAprConnector [false], useOpenSSL
[true]
      OpenSSL successfully initialized [OpenSSL 1.1.1  11 Sep 2018]
      Initializing ProtocolHandler ["ajp-nio-8009"]
      Server initialization in [1,859] milliseconds
      Starting service [Catalina]
      Starting Servlet engine: [Apache Tomcat/9.0.16 (Ubuntu)]
      Deploying web application archive
[/var/lib/tomcat9/webapps/market.war]
      SLF4J: Class path contains multiple SLF4J bindings.
      SLF4J: Found binding in
[jar:file:/var/lib/tomcat9/webapps/market/WEB-INF/lib/slf4j-simple-1.7.24.jar!/org/slf4j/impl/StaticLoggerBinder.class]

      SLF4J: Found binding in
[jar:file:/var/lib/tomcat9/webapps/market/WEB-INF/lib/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation.
      SLF4J: Actual binding is of type
[org.slf4j.impl.SimpleLoggerFactory]
      3 Spring WebApplicationInitializers detected on classpath
      onStartup
      getContext
      getRootConfigClasses
      [main] INFO com.kodekonveyor.market.WebInitializer -
getRootConfigClasses
      getServletConfigClasses
      [main] INFO com.kodekonveyor.market.WebInitializer -
getServletConfigClasses
      getServletMappings
      [main] INFO com.kodekonveyor.market.WebInitializer -
getServletMappings
At least one JAR was scanned for TLDs yet contained no TLDs. Enable
debug logging for this logger for a complete list of JARs that were
scanned but no TLDs were found in them. Skipping unneeded JARs during
scanning can improve startup time and JSP compilation time.
      Initializing Spring root WebApplicationContext
[main] INFO org.springframework.web.context.ContextLoader - Root
WebApplicationContext: initialization started
      [main] INFO
org.springframework.data.repository.config.RepositoryConfigurationDelegate

- Bootstrapping Spring Data repositories in DEFAULT mode.
      [main] INFO
org.springframework.data.repository.config.RepositoryConfigurationDelegate

- Finished Spring Data repository scanning in 198ms. Found 1 repository
interfaces.
      [main] INFO
org.springframework.data.repository.config.RepositoryConfigurationDelegate

- Bootstrapping Spring Data repositories in DEFAULT mode.
      [main] INFO
org.springframework.data.repository.config.RepositoryConfigurationDelegate

- Finished Spring Data repository scanning in 35ms. Found 1 repository
interfaces.
      [main] INFO
org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker

- Bean
'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration'

of type
[org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration]

is not eligible for getting processed by all BeanPostProcessors (for
example: not eligible for auto-proxying)
[main] INFO org.hibernate.jpa.internal.util.LogHelper - HHH000204:
Processing PersistenceUnitInfo [name: default]
      [main] INFO org.hibernate.Version - HHH000412: Hibernate Core
{5.4.6.Final}
[main] INFO org.hibernate.annotations.common.Version - HCANN000001:
Hibernate Commons Annotations {5.1.0.Final}
      [main] WARN
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator -
HHH000342: Could not obtain connection to query metadata : Cannot create
PoolableConnectionFactory (Could not find a java cryptographic
algorithm: Cannot find any provider supporting 1.2.840.113549.1.5.13.)
      [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using
dialect: org.hibernate.dialect.PostgreSQLDialect
      [main] INFO
org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator

- HHH000490: Using JtaPlatform implementation:
[org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
      [main] INFO
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean -
Initialized JPA EntityManagerFactory for persistence unit 'default'
      [main] WARN
org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration

- spring.jpa.open-in-view is enabled by default. Therefore, database
queries may be performed during view rendering. Explicitly configure
spring.jpa.open-in-view to disable this warning
      addResourceHandlers
      [main] INFO com.kodekonveyor.market.SpringConfig -
addResourceHandlers
      viewResolver
[main] INFO com.kodekonveyor.market.SpringConfig - viewResolver [main] INFO org.springframework.web.context.ContextLoader - Root
WebApplicationContext initialized in 12786 ms
      Initializing Spring DispatcherServlet 'DispatcherServlet'
[main] INFO org.springframework.web.servlet.DispatcherServlet -
Initializing Servlet 'DispatcherServlet'
[main] INFO org.springframework.web.servlet.DispatcherServlet -
Completed initialization in 17 ms
      Initializing Spring DispatcherServlet 'dispatcher'
[main] INFO org.springframework.web.servlet.DispatcherServlet -
Initializing Servlet 'dispatcher'
      [main] INFO
org.springframework.data.repository.config.RepositoryConfigurationDelegate

- Bootstrapping Spring Data repositories in DEFAULT mode.
      [main] INFO
org.springframework.data.repository.config.RepositoryConfigurationDelegate

- Finished Spring Data repository scanning in 13ms. Found 1 repository
interfaces.
[main] INFO org.hibernate.jpa.internal.util.LogHelper - HHH000204:
Processing PersistenceUnitInfo [name: default]
      [main] WARN
org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator -
HHH000342: Could not obtain connection to query metadata : Cannot create
PoolableConnectionFactory (Could not find a java cryptographic
algorithm: Cannot find any provider supporting 1.2.840.113549.1.5.13.)
      [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using
dialect: org.hibernate.dialect.PostgreSQLDialect
      [main] INFO
org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator

- HHH000490: Using JtaPlatform implementation:
[org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
      [main] INFO
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean -
Initialized JPA EntityManagerFactory for persistence unit 'default'
      addResourceHandlers
      [main] INFO com.kodekonveyor.market.SpringConfig -
addResourceHandlers
      viewResolver
[main] INFO com.kodekonveyor.market.SpringConfig - viewResolver [main] INFO org.springframework.web.servlet.DispatcherServlet -
Completed initialization in 1378 ms
      Deployment of web application archive
[/var/lib/tomcat9/webapps/market.war] has finished in [25,639] ms
Deploying web application directory [/var/lib/tomcat9/webapps/ROOT] At least one JAR was scanned for TLDs yet contained no TLDs. Enable
debug logging for this logger for a complete list of JARs that were
scanned but no TLDs were found in them. Skipping unneeded JARs during
scanning can improve startup time and JSP compilation time.
      Deployment of web application directory
[/var/lib/tomcat9/webapps/ROOT] has finished in [1,491] ms
      Starting ProtocolHandler ["ajp-nio-8009"]
      Server startup in [27,448] milliseconds
      [ajp-nio-8009-exec-1] INFO
com.kodekonveyor.market.servlets.LoginServlet -
service:com.kodekonveyor.market.login.LoginService@3e6bbac6
      [ajp-nio-8009-exec-1] INFO
com.kodekonveyor.market.login.LoginService - LoginService.call
      [ajp-nio-8009-exec-1] INFO
com.kodekonveyor.market.login.LoginService - githubSecret:s4cred S3cr3t Hibernate: select user0_.id as id1_0_, user0_.auth0id as auth2_0_,
user0_.email as email3_0_, user0_.name as name4_0_ from User user0_
where user0_.auth0id=?
      [ajp-nio-8009-exec-1] WARN
org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0,
SQLState: null
      [ajp-nio-8009-exec-1] ERROR
org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Cannot create
PoolableConnectionFactory (Could not find a java cryptographic
algorithm: Cannot find any provider supporting 1.2.840.113549.1.5.13.)
      Servlet.service() for servlet
[com.kodekonveyor.market.servlets.LoginServlet] in context with path
[/market] threw exception
org.springframework.orm.jpa.JpaSystemException: Unable to acquire
JDBC Connection; nested exception is
org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC
Connection
          at
org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:352)

          at
org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:254)

          at
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)

          at
org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)

          at
org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)

          at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)

          at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

          at
org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:149)

          at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

          at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)

          at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

          at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)

          at com.sun.proxy.$Proxy75.findByAuth0id(Unknown Source)
          at
com.kodekonveyor.market.login.LoginService.call(LoginService.java:41)
          at
com.kodekonveyor.market.servlets.LoginServlet.doGet(LoginServlet.java:29)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) 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.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

          at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

          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:200)

          at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

          at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)

          at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

          at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

          at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)

          at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

          at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

          at
org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:394)
          at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

          at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)

          at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)

          at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

          at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)

          at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

          at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

          at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.hibernate.exception.GenericJDBCException: Unable to
acquire JDBC Connection
          at
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47)

          at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)

          at
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)

          at
org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:107)

          at
org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:134)

          at
org.hibernate.engine.jdbc.internal.StatementPreparerImpl.connection(StatementPreparerImpl.java:50)

          at
org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:149)

          at
org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:176)

          at
org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:151)

          at
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:2099)
          at
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2029)
          at
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2007)
          at org.hibernate.loader.Loader.doQuery(Loader.java:953)
          at
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)

          at org.hibernate.loader.Loader.doList(Loader.java:2810)
          at org.hibernate.loader.Loader.doList(Loader.java:2792)
          at
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2624)
          at org.hibernate.loader.Loader.list(Loader.java:2619)
          at
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:506)
          at
org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:396)

          at
org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219)

          at
org.hibernate.internal.SessionImpl.list(SessionImpl.java:1410)
          at
org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1558)

          at
org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1526)

          at org.hibernate.query.Query.getResultList(Query.java:165)
          at
org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76)

          at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
          at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

          at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)
          at
org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:409)

          at com.sun.proxy.$Proxy87.getResultList(Unknown Source)
          at
org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:126)

          at
org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:88)

          at
org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:154)

          at
org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:142)

          at
org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:618)

          at
org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:605)

          at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

          at
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:353)

          at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99)

          at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

          at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)

          ... 38 more
      Caused by: java.sql.SQLException: Cannot create
PoolableConnectionFactory (Could not find a java cryptographic
algorithm: Cannot find any provider supporting 1.2.840.113549.1.5.13.)
          at
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:735)

          at
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:605)

          at
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:794)

          at
org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)

          at
org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:38)

          at
org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:104)

          ... 77 more
Caused by: org.postgresql.util.PSQLException: Could not find a java
cryptographic algorithm: Cannot find any provider supporting
1.2.840.113549.1.5.13.
          at
org.postgresql.ssl.LazyKeyManager.getPrivateKey(LazyKeyManager.java:253)
          at
java.base/sun.security.ssl.AbstractKeyManagerWrapper.getPrivateKey(SSLContextImpl.java:1764)

          at
java.base/sun.security.ssl.X509Authentication$X509PossessionGenerator.createClientPossession(X509Authentication.java:197)

          at
java.base/sun.security.ssl.X509Authentication$X509PossessionGenerator.createPossession(X509Authentication.java:154)

          at
java.base/sun.security.ssl.X509Authentication.createPossession(X509Authentication.java:87)

          at
java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.choosePossession(CertificateMessage.java:1052)

          at
java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.onProduceCertificate(CertificateMessage.java:1073)

          at
java.base/sun.security.ssl.CertificateMessage$T13CertificateProducer.produce(CertificateMessage.java:930)

          at
java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436)
          at
java.base/sun.security.ssl.Finished$T13FinishedConsumer.onConsumeFinished(Finished.java:981)

          at
java.base/sun.security.ssl.Finished$T13FinishedConsumer.consume(Finished.java:856)

          at
java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
          at
java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:443)

          at
java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:421)

          at
java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:177)

          at
java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
          at
java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152)
          at
java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063)

          at
java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)

          at org.postgresql.ssl.MakeSSL.convert(MakeSSL.java:40)
          at
org.postgresql.core.v3.ConnectionFactoryImpl.enableSSL(ConnectionFactoryImpl.java:441)

          at
org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:94)

          at
org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)

          at
org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)

          at
org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
          at org.postgresql.Driver.makeConnection(Driver.java:458)
          at org.postgresql.Driver.connect(Driver.java:260)
          at
org.apache.tomcat.dbcp.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:53)

          at
org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355)

          at
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:116)

          at
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:731)

          ... 82 more
Caused by: java.security.NoSuchAlgorithmException: Cannot find any
provider supporting 1.2.840.113549.1.5.13
at java.base/javax.crypto.Cipher.getInstance(Cipher.java:565)
          at
org.postgresql.ssl.LazyKeyManager.getPrivateKey(LazyKeyManager.java:205)
          ... 112 more


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to