Hi Pietro

Glad you've got it sorted out. If you're able to write up the procedure it 
would be great to include it on tiddlywiki.com.

Best wishes

Jeremy

--
Jeremy Ruston
[email protected]
https://jermolene.com

> On 2 Oct 2019, at 07:01, Pietro Abano <[email protected]> wrote:
> 
> 
> Hi Donald,
> 
> thank you for your hint: I did not see the IP address there indeed. Obviously 
> not good.
> 
> So I was gonna try your suggestion (removing the Host $host parameter) but 
> then I spotted my own typing error in the /etc/nginx/sites-enabled/default 
> file.
> One would think the nginx would not start at all or at least warn me, because 
> it checks the configs for syntax errors I guess, it happens all the time, but 
> not this simple typo ("Ugrade" instead of "Upgrade"!)
> 
> Everything works great now, the wiki is accessible only to clients with 
> proper cert and its content is saved and updated accordingly.
> 
> You simply made my date by making me go through this one more time. 
> In case you'd want to see how it's done with client certs I can provide you 
> (or anyone interested) with all the details.
> 
> Thanks!
> 
> Pietro
> 
> 
>> On Wednesday, October 2, 2019 at 4:56:00 AM UTC+2, Donald Coates wrote:
>> You'll probably get a better answer here but in the mean time: is 
>> 192.168.112.110 the address that bob shows in the settings?   On my own 
>> setup I do not have proxy_set_header Host $host so I wonder if that is 
>> causing the trouble.  I believe that is for standard http connections and 
>> not web socket.  If you look here you will see that line is not included.  I 
>> still have trouble understanding the intricacies of nginx and end up 
>> throwing shit against the wall until something sticks.
>> 
>>> On Tuesday, October 1, 2019 at 11:10:50 AM UTC-4, Pietro Abano wrote:
>>> Hello everyone,
>>> 
>>> I could not find anything related to what I am trying to achieve here so if 
>>> it's already covered somewhere please let me know.
>>> 
>>> As much as I love Jed's amazing work on BobWiki because it changes the ball 
>>> game for TW5 completely, allowing to share and work on something with a 
>>> team, over a local network, there is one thing that I'm missing - user 
>>> authentication.
>>> 
>>> In my scenario it is not so much about who the actual individual is, only 
>>> that it should be one of the authorized users.
>>> So I thought the client certificate-based authentication would do it. I set 
>>> up a reverse proxy using nginx to handle SSL/TLS (for the web server and 
>>> the clients) and talking to a local nodejs application on client's behalf.
>>> 
>>> After some reading about nginx and tweaking my nginx configs I am finally 
>>> able to access the TW5 on nodejs via https and even authenticate to it 
>>> (actually to nginx) with client X.509 certs, but unfortunatelly I hit a 
>>> problem:
>>> can't make any changes to TW5/BobWiki over the https.
>>> 
>>> The setup: 
>>> the TW5 runs on nodejs at 127.0.0.1:8080
>>> Tiddlywiki version 5.1.21 with Bob version 1.2.4
>>> Serving on 127.0.0.1:8080
>>> 
>>> on the same host with IP of 192.168.112.110 there's nginx listening at 80 
>>> or 443 forwarding all traffic to http://127.0.0.1:8080
>>> 
>>> It appears the TW5 is not aware of any requests done from the web client, 
>>> while direct connection to nodejs works as usual.
>>> 
>>> Not being a web developer nor an experienced sysadmin (just a tinker) I 
>>> have no clue as to where to look. Is it something with my nginx 
>>> configuration, more specifically with websockets? When looking at the data 
>>> being tranferred (Chrome, Inspect, Network) e.g. when adding a new tiddler, 
>>> I don't see much going on.
>>> 
>>> I can see some websocket communication initiated by 
>>> $:/plugins/OokTech/Bob/BrowserWebSocketsSetup.js which is different when I 
>>> go directly to nodejs - there I can see $:/core/module/saver in action, 
>>> while when I use the nginx-proxied access I don't see this at all.
>>> 
>>> Another symptom of the behavior is that when two users connect to the same 
>>> TW5 on nodejs, they both see any changes done by one of them in almost 
>>> real-time without refreshing the page while in ngix-proxied https access no 
>>> such on-screen update happens.
>>> 
>>> Studying the errors in Chrome I've come up with this which seems relevant:
>>> $:/plugins/OokTech/Bob/BrowserWebSocketsSetup.js:63 WebSocket connection to 
>>> 'wss://192.168.112.110/' failed: Error during WebSocket handshake: 
>>> Unexpected response code: 200 (of course without https, this looks like 
>>> 'ws://192.168.112.110/')
>>> 
>>> Btw, the Firefox's error pinpoints the line in the code (does not say which 
>>> source, I assume it's this BrowserWebSocketsSetup.js):
>>> Firefox can’t establish a connection to the server at 
>>> wss://192.168.112.110/. line 11345 > eval:63:48
>>> 
>>> This all happens regardless of http or https, it's the same error as long 
>>> as nginx is in the middle.
>>> 
>>> At various forums I found the solution for that Chrome error and it looks 
>>> like a websocket configuration thing in nginx:
>>> from https://github.com/websockets/ws/issues/979
>>> "Had the same issue, my app is behind nginx. Making these changes to my 
>>> Nginx config removed the error.
>>> 
>>> location / {
>>> proxy_pass http://localhost:8080;
>>> proxy_http_version 1.1;
>>> proxy_set_header Upgrade $http_upgrade;
>>> proxy_set_header Connection "upgrade";
>>> proxy_set_header Host $host;
>>> }
>>> "
>>> 
>>> The same changes did not help in my case, so it must be somewhere else, 
>>> maybe in the BobWiki code.
>>> 
>>> But that's about all I can do about it so I'd need someone's help.
>>> Is there anyone here who would know where this comes from? 
>>> 
>>> I can provide him/her with all the configs or even the full VM 
>>> (Ubuntu18.04mini) if needed. 
>>> But the cert-based authentication seems to be too attractive for me to let 
>>> it vanish to oblivion.
>>> 
>>> All the best to the community!
>>> 
>>> Pietro
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "TiddlyWiki" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/tiddlywiki/07723a91-ad33-4449-a556-d411ddf95d75%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/FB9931F9-8AB5-4B1D-9A1C-112719424743%40gmail.com.

Reply via email to