Trouble Enabling SSL on Fuseki Server

Viewed 71

I'm hoping some of you may be able to help me with setting up SSL on my fuseki server. I've been battling with it for a few days now and am running out of possible solutions!

OS: RHEL 8.5 (Ootpa) Fuseki: Version 4.2.0 Currently running as system service with:

ExecStart=/home/fuseki/apache-jena-fuseki-4.2.0/fuseki-server -v -tdb2 -update -config=/home/fuseki/fuseki_data/config.ttl

This is the manual I've been working with- https://jena.apache.org/documentation/fuseki2/fuseki-data-access-control.html

The following are the provided arguments to add in the startup sequence of fuseki-server.

–https=SETUP [Name of file for certificate details.] & –httpsPort=PORT [The port for https. Default: 3043]

The --https argument names a file in JSON which includes the name of the certificate file and password for the certificate.

The issue is that no matter how I phrase the arguments the process returns "fuseki-server[9469]: Unknown argument: https" in the journalctl logs.

I have tried -https=dir, --https=dir, & -httpsConf=dir (where dir is the directory to my cert_details.json file).

Based on the docs https should have native support but when I check fuseki-server -help there is no mention of an https argument. I have created a .jks from my cert, have set the correct file permissions, and have allowed 3043.

I have also located the block of code in fuseki that resolves the keystore and passwd from the .json file (which led me to try using -httpsConf=)

private void setHttpsCert(String filename) { try { JsonObject httpsConf = JSON.read(filename); Path path = Path.of(filename).toAbsolutePath(); String keystore = httpsConf.get("keystore").getAsString().value(); // Resolve relative to the https setup file. this.httpsKeystore = path.getParent().resolve(keystore).toString(); this.httpsKeystorePasswd = httpsConf.get("passwd").getAsString().value();

Not sure what I'm missing here. For what it's worth I'm a chemist and I definitely don't know java all that well so it very well could be me being stupid. Any suggestions/knowledge would be greatly appreciated.

1 Answers

there are two ways to get HTTPS+Fuseki:

The document referred to is for the jar file here: https://repo1.maven.org/maven2/org/apache/jena/jena-fuseki-server/4.2.0/jena-fuseki-server-4.2.0.jar, not the jar in the apache-jena-fuseki download. (BTW It does not have the UI.)

The one in the apache-jena-fuseki can be use HTTPS by using a Jetty configuration using --jetty=jetty.xml (https://www.eclipse.org/jetty/documentation/current/jetty-xml-config.html) -- example: https://github.com/apache/jena/blob/main/jena-fuseki2/examples/fuseki-jetty-https.xml (which will need modifying).

Related