Introduction
When you installed artifactory or migrated/restored it from a DB snapshot, you usually do the following to validate if artifactory is up or not:
1. Check the following message in router-service.log:
###############################################################
### All services started successfully in 17.836 seconds ###
###############################################################
2. Run the following api:
$ curl -s http://localhost:8046/router/api/v1/topology/health
3. Visit Artifactory UI
In some cases, you might see the All services started successfully message and all service healthy response from api, but get a 404 response from the UI.
This could happen because you have enabled TLS on the JFrog Platform.
Solution
Depending on whether you get the 404 response through a load balancer url or direct node ip, you want to first check router-request.log to make sure that the 404 is actually from the jf-router and not other network components:
$ tail -f router-request.log | grep ‘"DownstreamStatus":404’
Next, you should compare the output with http vs https:
$ curl -s http://localhost:8082/router/api/v1/system/health
$ curl -s https://localhost:8082/router/api/v1/system/health
You would see 404 on HTTP connections and a good response from HTTPS
It means you have enabled tls in jfrog platform.
When enabling TLS in Artifactory, the router port remains 8082, but all connections need to be through https instead of http.
So you will need to visit artifactory at:
https://[Hostname]:8082/ui/
And if you have a reverse proxy in front, they need to talk to the backend artifactory at
https://[Hostname]:8082
TLS is disabled by default in artifactory. However, the settings could be turned on during installation or introduced from DB restore/ system import. Leading to strange observations.