My goal was to use Cisco ASDM on a Ubuntu system; for the Linux systems Cisco offers a Java version of the ASDM application. The application can be executed as a Java Web Start application meaning that basically you need only a browser and a JRE (Java Runtime Environment) to execute the application.
The working workflow should be the following one:
- go to the Cisco web console (in my case the url was https:/192.168.1.1/admin).
- retrieve the jnlp (Java Network Launch Protocol ) file (in my case the file name was asdm.jnlp)
- execute jnlp file to start the ASDM application.
In my case, while executing the step 1 from the previous workflow I had the following error:
I was pretty sure that the JRE is correctly installed but because of some obscure reason the browser do not recognize that the JRE is present.
After trying different solutions like importing the Cisco Web Server certificate to the JRE keystore, mark the Cisco Web Server url as a trusted url for the browser and for the JRE, I found a way to solve the problem (retrieve the jnlp file).
So, looking to the HTML code of the index.html page you can see 2 divs with self-explanatory ids (“jws_installed” and “jws_not_installed”). The visibility of this divs is handled by the display attribute (display:none will not show the div, display:inline will show the div). As you can see on the original page the div that should be shown if the jws is installed is not shown (see the red arrow on the following image).
So, by modifying the display attribute of the “jws_installed” div, it would be possible to render the page as if the browser recognized that JRE is installed on the system. And here is the result:
Now, you can click on the “Run ADSM” button, so the jnlp file can be downloaded on your system. Once you have the jnlp file, then you can execute it using the following command: