OK I don't know Ruby but I think the person maintaining the SOH scripts should give them a look.
I used
soh query --verbose --service https://example.org --query myquery.sparql
and I got the 400 error. The output of --verbose shows me the exact GET request,
GET https://example.org?query=select...
and if I use curl it works OK
curl https://example.org?query=select...
by the way, the same is true with --post.
The Ruby docs (https://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html#class-Net::HTTP-label-HTTPS) seems to suggest that either a 'net/https' module is required, or that use_ssl=(flag) is required. I don't see any of those in the s-query and soh scripts. I'm pretty confident that it's an issue with the scripts.
Sent: Friday, November 09, 2018 at 4:37 PM
From: "Andy Seaborne" <***@apache.org>
To: ***@jena.apache.org
Subject: Re: SOH HTTPS
^^^^
Something did:
"http://...:443/"
which is not the way to do https. nginx picked this up.
Should be "https://"
(if nginx is configured to run https over :80, all sorts of things are
likely to go wrong).
---------------------
The library SOH uses may well support "https://", else use curl.
Andy
Post by Laura MoralesYes, behind a nginx reverse proxy (not controlled by me).
Sent: Friday, November 09, 2018 at 3:17 PM
Subject: Re: SOH HTTPS
Are you sending this to a Fuseki endpoint? It does not appear so.
ajs6f
Post by Laura MoralesHow to use Fuseki SOH with HTTPS?
$ ./soh query --service= --query= >> <html>
<head>
<title>
400 The plain HTTP request was sent to HTTPS port
</title>
</head>
<body bgcolor="white">
<center>
<h1>
400 Bad Request
</h1>
</center>
<center>
The plain HTTP request was sent to HTTPS port
</center>
<hr>
<center>
nginx/1.12.1
</center>
</body>
</html>