About config/nginx/app.conf in bundled_ssl of v2.2.0-latest #169
Replies: 5 comments 4 replies
-
|
Hi After I've checked the two different app.conf nginx configuration from the different setups, I see you are right about that. Tanks you for reporting. We changed the names of the services so that they have the same names over all setups. And forgot the change the names within app.config in the bundled_ssl setup. I now changed added the correct names to the setup and it should work now. Thank you again, best regards |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Hi, I see, thanks for providing the necessary information. Self signed certificates can be a problem when integrating other Systems like Moodle or other LMS since they do not accept self signed certificates when they are setup properly. But this seems not to be the Problem here. But first to your PS question:
The provided setup is supposed to run on default ports (HTTP --> 80, HTTPS --> 443). If you use these default ports, as you probably do, due to your information above, the port settings can be empty. The whole setup is designed to run SEB Server on a server-host that is exposed to the internet and has proper HTTPS configuration either by the host machine itself or external proxy (bundled) or by the setup within the reverse proxy (bundled_ssl). The URL to the Screen Proctoring service https://sebserv-test.foo.bar.ac.jp/sps-web seems to be okay to me. In the logs you provided I can see the following... SEB Server tries to connect to sps-webservice but fails due to: We can see that it is a UnknownHostExcpetion. It failed to reslove the DNS name for your server "sebserv-test.foo.bar.ac.jp". In the sps-webservice logs file, on the other hand, I see nothing, no authentication error or even a broken connection. This means that the request from seb-webservice never get to the sps-webservice and this seems not to be an authentication error but an netwokring issue. This is most probably due to your network or firewall blocking the Request from seb-webservice or do not recognizance it as coming from within your network. There might be different ways you can solve this:
I hope this helps. If you want to make a proper productive setup later on, valid HTTPS certificates are needed, especially if you want to work with third party system like Moodle or other LMS. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for your reply. At this point, I’m not considering any integration with an LMS. I plan to ask about LMS support in a separate thread later, but our university’s environment is rather unusual, so there’s a high chance that SEB Server may not support it anyway. For now, my main goal is simply to get the basic system working. I have a few questions, because there are some parts of your explanation that I still don’t fully understand.
All SEB Server–related containers are running on the same physical server using docker-compose. I may be misunderstanding something, but according to the documentation, all the components communicate through Docker’s internal network. Because of this, I don’t think the university firewall is blocking the communication. Also, I don’t believe our university blocks HTTP or HTTPS in this way. Then there was your second comment:
Based on this, I suspected that the containers might not be using our internal (LAN) DNS. So I added our university DNS server’s IP address at the top of the "dns" list in /etc/docker/daemon.json and restarted Docker. From this, I am assuming the following:
I believe these two points are the cause. Regarding the self-signed certificate: at this testing stage I have no choice but to use it. Even if I want to use a free certificate such as Let’s Encrypt, issuing it requires making the test server accessible from outside the university. However, according to university policy, doing so requires strong security measures, specific firewall settings, and an official security review, so this is quite difficult during early software evaluation. According to the official documentation — Overview (https://seb-server-setup.readthedocs.io/en/latest/overview.html “7: SEB Server connection to Screen Proctoring webservice. (this can be internal via docker network or external via DNS)” From this, I assumed that if all services communicate only via the internal Docker network, certificate issues should be avoided. Your advice also said: “Instead of the DNS name use the IP address of the Host where SEB Server is running on. This should also work and skips DNS name resolving.” However, I don’t know how to configure the system in this way. |
Beta Was this translation helpful? Give feedback.
-
|
Hi
It depends on the configuration and on the specific connection. both seb-server and sps-webservice as well communicate internally within docker network with the database. But the Rest API of this services are exposed to the outside as well as are accessible internally through the docker network as usual. For the default template that you use, the database connections are internally in docker network but the connection from seb-server to sps-webservice API is configured externally as you can see, when you use a DNS name for the Screen Proctoring Connection.
Point 7. is currently not possible for a single host setup since there is only one sps-webservice API configuration for SEB Client as well as for seb-server. Since SEB Client always needs to connect to sps-webservice from outside, it is necessary to configure this connection to be accessible from outside. For Kubernetes like setups this would be possible, I assume, but not for the single host setup. Proposal: Since you do not want to expose your SEB Server setup yet, we recommend to use the bundled setup with no SSL termination running on port 80 that is the default port for HTTP. Configuring SEB Server to run in localhost would also be possible but then you are not able to connect with SEB Clients from the outside. So instead of your DNS name you should be able to give the direct IP address of the Host SEB Server is running on in the .env file. And you have to change the https to http all over the docker-compose.yml file. This should work as far as I know. Then the host where SEB Server is running on must allow outgoing HTTP Requests to its own IP. This should be the case with Docker default and if there is no network/firewall defined from the host machine that does not allow outgoing HTTP requests from the host. You can test this by bashing into the running seb-server container and try to make a HTTP(S) request from inside the container, with a curl for example. Hope this helps. |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
-
I cloned SEB Server v2.2.0-latest from GitHub to an Ubuntu server and tried to run the bundle_ssl container. However, after executing docker compose up -d, I could not access the server from the browser. When I checked the running status with docker ps, I found that seb-server-proxy was repeatedly restarting. The logs showed that the cause was an inability to reach the sps-server (not found).
I compared the config/nginx/app.conf files of the bundle and bundle_ssl versions, and found the following differences besides the certificate-related settings:
bundle version:
location /sps-web/ {
proxy_pass http://sps-webservice:8090/;
}
location /sps-gui/ {
proxy_pass http://sps-guiservice:3000/;
}
bundle_ssl version:
location /sps-web/ {
proxy_pass http://sps-server:8090/;
}
location /sps-gui/ {
proxy_pass http://sps-gui:3000/;
}
Since the bundle version works correctly, I modified the bundle_ssl app.conf to use sps-webservice and sps-guiservice in the same way. After rebuilding, the seb-server-proxy restart loop stopped and I was able to access the SEB Server admin UI via the browser.
My question is: does this mean that the config/nginx/app.conf provided for the bundle_ssl setup in the v2.2.0-latest package contains incorrect (or outdated) settings? Or did I make a fundamental mistake, and the original app.conf should work as-is?
Beta Was this translation helpful? Give feedback.
All reactions