Making some progress but things still don't work.

The startup log (edited) looks like this (domain name changed to mysite.com):

[2015-08-27 03:56:03] Server     INFO  Jetty server config file = myconfig.xml
[2015-08-27 03:56:03] Server     INFO  Fuseki 2.3.0 2015-07-25T17:11:28+0000
[2015-08-27 03:56:03] Config     INFO  FUSEKI_HOME=/home/ec2-user/fuseki
[2015-08-27 03:56:03] Config     INFO  FUSEKI_BASE=/home/ec2-user/fuseki/run
[2015-08-27 03:56:03] Servlet    INFO  Initializing Shiro environment
[2015-08-27 03:56:03] Config     INFO  Shiro file:
file:///home/ec2-user/fuseki/run/shiro.ini
[2015-08-27 03:56:03] Config     INFO  Template file: templates/config-tdb-dir
[2015-08-27 03:56:03] Config     INFO  TDB dataset: directory=ds
[2015-08-27 03:56:03] Config     INFO  Register: /ds
[2015-08-27 03:56:03] AbstractLifeCycle WARN  FAILED
ServerConnector@7e5441{SSL-http/1.1}{mysite.com:8443}:
java.net.BindException: Cannot assign requested address
java.net.BindException: Cannot assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
....
....
....
[2015-08-27 03:56:03] AbstractLifeCycle WARN  FAILED
org.eclipse.jetty.server.Server@f9ed3e: java.net.BindException: Cannot
assign requested address
java.net.BindException: Cannot assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
....
....
....
[2015-08-27 03:56:03] Server     ERROR SPARQLServer (port=0): Failed
to start server: Cannot assign requested address


And I'm running fuseki 2.3.0 with this command:

nohup ./fuseki-server --port 8443 --update
--jetty-config=myconfig.xml --loc=ds /ds


The "myconfig.xml" file is below (I've already added my certificate
and key to the Java 8 JSSE):

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure.dtd";>

<Configure id="Server" class="org.eclipse.jetty.server.Server">
  <Call name="addConnector">
    <Arg>
      <New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server"><Ref refid="Server" /></Arg>
<Arg name="factories">
 <Array type="org.eclipse.jetty.server.ConnectionFactory">
   <Item>
     <New class="org.eclipse.jetty.server.HttpConnectionFactory">
<Arg name="config"><Ref refid="httpConfig" /></Arg>
     </New>
   </Item>
 </Array>
</Arg>
      </New>
    </Arg>
  </Call>

<New id="sslContextFactory"
class="org.eclipse.jetty.util.ssl.SslContextFactory">
  <Set name="KeyStorePath">/home/ec2-user/keystore</Set>
  <Set name="KeyStorePassword">somepassword</Set>
  <Set name="KeyManagerPassword">somepassword</Set>
  <Set name="TrustStorePath">/home/ec2-user/keystore</Set>
  <Set name="TrustStorePassword">somepassword</Set>
</New>

<Call id="sslConnector" name="addConnector">
  <Arg>
    <New class="org.eclipse.jetty.server.ServerConnector">
      <Arg name="server"><Ref refid="Server" /></Arg>
        <Arg name="factories">
          <Array type="org.eclipse.jetty.server.ConnectionFactory">
            <Item>
              <New class="org.eclipse.jetty.server.SslConnectionFactory">
                <Arg name="next">http/1.1</Arg>
                <Arg name="sslContextFactory"><Ref
refid="sslContextFactory"/></Arg>
              </New>
            </Item>
            <Item>
              <New class="org.eclipse.jetty.server.HttpConnectionFactory">
                <Arg name="config"><Ref refid="tlsHttpConfig"/></Arg>
              </New>
            </Item>
          </Array>
        </Arg>
        <Set name="host"><Property name="jetty.host"/></Set>
        <Set name="port"><Property name="jetty.tls.port" default="8443" /></Set>
        <Set name="idleTimeout">30000</Set>
        <Set name="host">mysite.com</Set>
      </New>
  </Arg>
</Call>

</Configure>

===================================

On Tue, Aug 25, 2015 at 5:17 PM, Jason Levitt <[email protected]> wrote:
> I can't find any examples of the file that you hand to  "--jetty-config"
>
> The "official" jetty docs for configuring SSL imply that there are two
> configuration files,
>  jetty-ssl-context.xml and  jetty-https.xml.
> (http://www.eclipse.org/jetty/documentation/current/configuring-ssl.html)
>
> The example that you cite:
>
> http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/jetty-server/src/main/config/etc/jetty-https.xml
>
> says that: "This configuration must be used in conjunction with
> jetty.xml and jetty-ssl.xml"
>
> Where do these files go? The Fuseki download does not have any "etc"
> directory or
> any xml configuration files at all.
>
> So, I tried handing some XML config files to Fuseki using
> --jetty-config and it gives very little
> info in the error (see below). Has anyone actually successfully run
> Fuseki over SSL?
>
> [2015-08-25 22:13:34] Server     INFO  Jetty server config file =
> ./jetty-https.xml
> [2015-08-25 22:13:34] Server     ERROR SPARQLServer: Failed to
> configure server: Unknown configuration type: Call in
> org.eclipse.jetty.xml.XmlConfiguration@1d80d2b
> java.lang.IllegalStateException: Unknown configuration type: Call in
> org.eclipse.jetty.xml.XmlConfiguration@1d80d2b
> at org.eclipse.jetty.xml.XmlConfiguration.setConfig(XmlConfiguration.java:198)
> at org.eclipse.jetty.xml.XmlConfiguration.<init>(XmlConfiguration.java:177)
> at org.apache.jena.fuseki.jetty.JettyFuseki.configServer(JettyFuseki.java:264)
> at 
> org.apache.jena.fuseki.jetty.JettyFuseki.buildServerWebapp(JettyFuseki.java:222)
> at org.apache.jena.fuseki.jetty.JettyFuseki.<init>(JettyFuseki.java:91)
> at 
> org.apache.jena.fuseki.jetty.JettyFuseki.initializeServer(JettyFuseki.java:86)
> at 
> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.exec(FusekiCmd.java:335)
> at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
> at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
> at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
> at 
> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.innerMain(FusekiCmd.java:96)
> at org.apache.jena.fuseki.cmd.FusekiCmd.main(FusekiCmd.java:59)
> org.apache.jena.fuseki.FusekiException: Failed to configure a server
> using configuration file './jetty-https.xml'
> at org.apache.jena.fuseki.jetty.JettyFuseki.configServer(JettyFuseki.java:269)
> at 
> org.apache.jena.fuseki.jetty.JettyFuseki.buildServerWebapp(JettyFuseki.java:222)
> at org.apache.jena.fuseki.jetty.JettyFuseki.<init>(JettyFuseki.java:91)
> at 
> org.apache.jena.fuseki.jetty.JettyFuseki.initializeServer(JettyFuseki.java:86)
> at 
> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.exec(FusekiCmd.java:335)
> at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
> at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
> at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
> at 
> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.innerMain(FusekiCmd.java:96)
> at org.apache.jena.fuseki.cmd.FusekiCmd.main(FusekiCmd.java:59)
>
> J
>
>
> On Fri, Aug 21, 2015 at 4:14 AM, Andy Seaborne <[email protected]> wrote:
>> On 20/08/15 22:37, Jason Levitt wrote:
>>>
>>> Thanks. So I can still use the "--jetty-config" option with Fuseki v2.30 ?
>>>
>>> J
>>
>>
>> Yes, should work to pass in the file.  There was a major jetty version
>> change (8 to 9) and what effect that has had on that option is unclear to
>> me. Connector changed Jetty 8->9
>>
>> http://www.eclipse.org/jetty/documentation/current/configuring-ssl.html
>>
>> and their example:
>>
>> http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/jetty-server/src/main/config/etc/jetty-https.xml
>>
>> It would be good to add this to the distribution - if you or anyone else has
>> a working version, I'd be very grateful to get a copy.
>>
>>
>>         Andy
>>
>>>
>>> On Thu, Aug 20, 2015 at 3:46 PM, Andy Seaborne <[email protected]> wrote:
>>>>
>>>> On 20/08/15 21:24, Jason Levitt wrote:
>>>>>
>>>>>
>>>>> Which version of Jetty does Fuseki 2.30 (the latest version) use?
>>>>>
>>>>> J
>>>>
>>>>
>>>>
>>>>
>>>> http://central.maven.org/maven2/org/apache/jena/jena-fuseki/2.3.0/jena-fuseki-2.3.0.pom
>>>>
>>>> ==> Jetty 9.1.1.v20140108
>>>>
>>>>          Andy
>>>>
>>>>
>>>>>
>>>>> On Thu, Aug 20, 2015 at 6:14 AM, Andy Seaborne <[email protected]> wrote:
>>>>>>
>>>>>>
>>>>>> The Jetty documentation is the best place to go for details of setting
>>>>>> up
>>>>>> Jetty.
>>>>>>
>>>>>> Here's one in the examples/ area but as far as I can tell it's more int
>>>>>> he
>>>>>> category of "should work" (it is from Fuseki1 and that was a different
>>>>>> version of Jetty) rather than tested.
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/apache/jena/blob/master/jena-fuseki2/examples/jetty-fuseki.xml
>>>>>>
>>>>>> If you, or anyone else, has a better example - please send it.
>>>>>>
>>>>>>           Andy
>>>>>>
>>>>>>
>>>>>> On 20/08/15 02:54, Jason Levitt wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> We're in an AWS environment using Fuseki 2 with built-in Jetty. It
>>>>>>> only talks to internal machines so there
>>>>>>> is no need to protect it from external exposure.  So that means that
>>>>>>> the easiest way is to use the
>>>>>>> `--jetty-config` flag to setup HTTPS to Jetty?  Are there any docs on
>>>>>>> what the options are for that
>>>>>>> config file (e.g. what goes into the config file)?
>>>>>>>
>>>>>>> J
>>>>>>>
>>>>>>> On Tue, Aug 18, 2015 at 3:21 PM, Andy Seaborne <[email protected]>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Right.  In a production environment, a reverse proxy is useful for
>>>>>>>> several
>>>>>>>> things and while there is nothing that force a reverse proxy, the
>>>>>>>> weight
>>>>>>>> of
>>>>>>>> features can mean it's a useful and flexible thing to put into a
>>>>>>>> production
>>>>>>>> system.
>>>>>>>>
>>>>>>>> 1/ Blocking undesirable clients
>>>>>>>>       (manic crawlers, badly written PHP scripts)
>>>>>>>> 2/ more robust to DOS attacks (and accidental attacks)
>>>>>>>>       Java web containers just aren't as good under silly load
>>>>>>>> conditions.
>>>>>>>> 3/ URL rewrite
>>>>>>>>       E.g don't need /dataset/query - can be any URL you like.
>>>>>>>> 4/ Security
>>>>>>>>       integrate with local systems; rich choice of controls.
>>>>>>>>       Control who and what can update
>>>>>>>>       No need to restart for shiro chnages.
>>>>>>>> 5/ Rate control (e.g. no more than N queries at a time)
>>>>>>>> 6/ https (can be expensive so a C-implementation can help)
>>>>>>>> 7/ Lots of add-ons and mods for all sorts of tasks.
>>>>>>>> 8/ Lots of Q&A on stackoverflow!
>>>>>>>>
>>>>>>>> Fuseki has "--localhost" to only talk to the machine's localhost
>>>>>>>> network
>>>>>>>> interface. In an environment like AWS, where port control is easily,
>>>>>>>> it's
>>>>>>>> trivial to secure the Fuseki server to only talk to the local reverse
>>>>>>>> proxy
>>>>>>>> by blocking all ports except (22 and) 80+443.
>>>>>>>>
>>>>>>>>            Andy
>>>>>>>>
>>>>>>>>
>>>>>>>> On 18/08/15 20:21, A. Soroka wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I checked more carefully (should have done that before replying) and
>>>>>>>>> it
>>>>>>>>> seems that Fuseki 2 also offers the `--jetty-config` flag for using
>>>>>>>>> a
>>>>>>>>> Jetty
>>>>>>>>> configuration that supports HTTPS:
>>>>>>>>>
>>>>>>>>> --jetty-config=FILE    Set up the server (not services) with a Jetty
>>>>>>>>> XML
>>>>>>>>> file
>>>>>>>>>
>>>>>>>>> ---
>>>>>>>>> A. Soroka
>>>>>>>>> The University of Virginia Library
>>>>>>>>>
>>>>>>>>> On Aug 18, 2015, at 10:34 AM, [email protected]
>>>>>>>>> <[email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Are you deploying Fuseki to your own servlet container (e.g. Tomcat
>>>>>>>>>> or
>>>>>>>>>> Jetty) or using the server included with Fuseki and is it Fuskei 1
>>>>>>>>>> or
>>>>>>>>>> 2?
>>>>>>>>>>
>>>>>>>>>> If the former, you will need to supply configuration specific to
>>>>>>>>>> that
>>>>>>>>>> container. If the latter and it is Fuseki 1, there is a Stack
>>>>>>>>>> Overflow
>>>>>>>>>> answer for it:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://stackoverflow.com/questions/28310045/enable-https-ssl-on-fuseki-server
>>>>>>>>>>
>>>>>>>>>> but the links seems to be dead. The idea is to supply your own
>>>>>>>>>> Jetty
>>>>>>>>>> configuration (Jetty is the servlet container that the Fuseki
>>>>>>>>>> command
>>>>>>>>>> uses).
>>>>>>>>>> For Fuseki 2, I think it is still under development? You could use
>>>>>>>>>> a
>>>>>>>>>> reverse
>>>>>>>>>> proxy in front of Fuseki, in that case.
>>>>>>>>>>
>>>>>>>>>> ---
>>>>>>>>>> A. Soroka
>>>>>>>>>> The University of Virginia Library
>>>>>>>>>>
>>>>>>>>>> On Aug 17, 2015, at 7:07 PM, Jason Levitt <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Sorry if this is a FAQ, but I'm wondering if there are
>>>>>>>>>>> any guidelines online to setting up
>>>>>>>>>>> Fuseki for HTTPS access?
>>>>>>>>>>>
>>>>>>>>>>> Jason
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>

Reply via email to