I'm trying to use HTTPS with APR on debian (amd64/wheezy).
I successfully tested my keyfiles with openssl client and server.
Now, I struggling to make it work on tomEE.
My configuration is:
INFO: Server version: Apache Tomcat (TomEE)/7.0.62 (1.7.2)
INFO: JVM Version: 1.6.0_36-b36
INFO: Loaded APR based Apache Tomcat Native library 1.1.33 using APR
version 1.4.6.
INFO: OpenSSL successfully initialized (OpenSSL 1.0.1e 11 Feb 2013)
The relevant sections of server.xml are:
<Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" SSLRandomSeed="/dev/urandom"/>
<Connector
protocol="org.apache.coyote.http11.Http11AprProtocol"
port="8443" maxThreads="200"
scheme="https"
secure="true" SSLEnabled="true"
SSLCertificateFile="test_cert.crt"
SSLCertificateKeyFile="test_key.pem"
SSLPassword="secret"
SSLDisableCompression="true"
SSLCipherSuite="kEECDH+ECDSA kEECDH kEDH HIGH +SHA +RC4 RC4 !3DES
!aNULL !eNULL !LOW !MD5 !EXP !DSS !PSK !SRP !kECDH !CAMELLIA !IDEA !SEED"
SSLHonorCipherOrder="true"
SSLVerifyClient="optional"
SSLProtocol="TLSv1.2"/>
The server is unable to start using:
./startup.sh -security -Djava.security.debug=all
The errors are:
12-Nov-2015 16:05:30 org.apache.catalina.core.AprLifecycleListener
lifecycleEvent
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters
[false], random [true].
12-Nov-2015 16:05:30 org.apache.catalina.core.AprLifecycleListener
initializeSSL
INFO: OpenSSL successfully initialized (OpenSSL 1.0.1e 11 Feb 2013)
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:534)
at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:262)
at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:244)
at java.security.AccessController.doPrivileged(Native Method)
at
sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:244)
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:224)
at sun.security.jca.ProviderList.loadAll(ProviderList.java:281)
at sun.security.jca.ProviderList.removeInvalid(ProviderList.java:298)
at sun.security.jca.Providers.getFullProviderList(Providers.java:170)
at java.security.Security.getProviders(Security.java:457)
at
org.apache.catalina.core.JreMemoryLeakPreventionListener.lifecycleEvent(JreMemoryLeakPreventionListener.java:407)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:99)
at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
at org.apache.catalina.startup.Catalina.start(Catalina.java:677)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: java.security.AccessControlException: access denied
(java.lang.RuntimePermission accessClassInPackage.sun.security.util)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:399)
at
java.security.AccessController.checkPermission(AccessController.java:557)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at
java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1525)
at java.lang.ClassLoader$1.run(ClassLoader.java:354)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.checkPackageAccess(ClassLoader.java:352)
at sun.security.pkcs11.SunPKCS11.<clinit>(SunPKCS11.java:63)
... 26 more
Did I forget something ?
Any hint to debug this ?
--
Fabien