I've been asked to remove SSLv3 from our jetty webserver/config.
We are using Knoplerfish/OSGI to launch pax-web-jetty.
I have added -Dorg.ops4j.pax.web.config.file=/opt/etc/jetty.xml to the init.xargs file in order to modify the config. However, I can't seem to find the magical jetty.xml file to do the trick.
(0000015202) [BundleStart #12] INFO org.ops4j.pax.web.service.internal.Activator - Pax Web started
(0000016270) 1970-01-01 02:33:39.423:INFO::pool-1-thread-1: Logging initialized @13149ms
(0000016348) 1970-01-01 02:33:39.552:DBUG:oejuc.ContainerLifeCycle:pool-1-thread-1: org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper@dafd1f added {qtp2
7046496{STOPPED,8<=0<=200,i=0,q=0},AUTO}
(0000016374) 1970-01-01 02:33:39.581:DBUG:oejuc.ContainerLifeCycle:pool-1-thread-1: org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper@dafd1f added {org.
ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection@145be76[],AUTO}
(0000016434) Memory Available = 222527488 <1429504>
(0000016589) Memory Available = 222355456 <172032>
(0000016784) 1970-01-01 02:33:39.991:WARN:oejx.XmlConfiguration:pool-1-thread-1: Config error at <Call name="addConnector"><Arg>|???<New class="org.eclipse.jetty.
util.ssl.SslContextFactory"><Set name="ExcludeProtocols">|????<Array type="java.lang.String"><Item>SSLv3</
(0000016785) tem></Array>|????</Set></New>|??</Arg></Call> java.lang.IllegalStateException: No Method: <Call name="addConnector"><Arg>
(0000016786) <New class="org.eclipse.jetty.util.ssl.SslContextFactory"><Set name="ExcludeProtocols">
(0000016786) <Array type="java.lang.String"><Item>SSLv3</Item></Array>
(0000016786) </Set></New>
(0000016787) </Arg></Call> on class org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper in file:/opt/etc/jetty.xml
(0000016789) [pool-1-thread-1] ERROR org.ops4j.pax.web.service.internal.Activator - Unable to start pax web server: Exception while starting Jetty
(0000016795) java.lang.RuntimeException: Exception while starting Jetty
(0000016797) at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl.start(JettyServerImpl.java:167)
(0000016797) at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl$Stopped.start(ServerControllerImpl.java:415)
(0000016798) at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.start(ServerControllerImpl.java:71)
(0000016799) at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl$Unconfigured.configure(ServerControllerImpl.java:736)
(0000016799) at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.configure(ServerControllerImpl.java:87)
(0000016800) at org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:349)
(0000016800) at org.ops4j.pax.web.service.internal.Activator$3.run(Activator.java:291)
(0000016801) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
(0000016802) at java.util.concurrent.FutureTask.run(Unknown Source)
(0000016802) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
(0000016803) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
(0000016803) at java.lang.Thread.run(Unknown Source)
(0000016805) Caused by: java.lang.reflect.InvocationTargetException
(0000016805) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
(0000016806) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
(0000016806) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
(0000016807) at java.lang.reflect.Method.invoke(Unknown Source)
(0000016807) at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl.start(JettyServerImpl.java:131)
(0000016808) ... 11 more
(0000016809) Caused by: java.lang.IllegalStateException: No Method: <Call name="addConnector"><Arg>
(0000016810) <New class="org.eclipse.jetty.util.ssl.SslContextFactory"><Set name="ExcludeProtocols">
(0000016810) <Array type="java.lang.String"><Item>SSLv3</Item></Array>
(0000016810) </Set></New>
(0000016810) </Arg></Call> on class org.ops4j.pax.web.service.jetty.internal.JettyServerWrapper
(0000016811) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:738)
(0000016812) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:417)
(0000016812) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:298)
(0000016813) at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:248)
(0000016813) ... 16 more
(0000016814) Caused by: java.lang.NoSuchMethodException: addConnector
(0000016815) at org.eclipse.jetty.util.TypeUtil.call(TypeUtil.java:537)
(0000016816) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:730)
(0000016816) ... 19 more
The app is servlet based and is started later on in the OSGI config. All the jetty examples want to show jetty.xml, jetty-http.xml, jetty-https.xml, and jetty-ssl.xml. Should I just append all those together?
One caveat that may make things slightly more complicated is that we install our own javax.net.ssl.SSLServerSocketFactory service. However, I tried creating my own SSLServerSocketFactory, but jetty didn't appear to use it.
Any help would be greatly appreciated.