Using Ignition Designer behind an http proxy

Hi,

I'm trying to use Ignition Designer at work, behind a company http proxy. I'm having a lot of issues (and there is very little specific documentation about this).

So far, I've managed to put this string in the "JVM Arguments" of the launcher:

-Dhttps.proxyHost=<my proxy ip>;-Dhttps.proxyPort=3128;-Djava.net.preferIPv4Stack=true

The designer launcher starts, and so it does the designer itself. But as soon as I try to create or edit a view, I get this error inside the main window:

This site can’t be reached

https:///data/perspective/design is unreachable.

ERR_ADDRESS_UNREACHABLE

Am I missing something else? :frowning:

--
Francesco P.

Psst! Might want to blur that image…

1 Like

D’oh! Thanks! :confused:

Followup: it seems I can’t use port redirection on the local proxy, because when I try to validate and import the Let’s Encrypt certificate, the Designer Launcher - after the certificate review and when I click Trust Certificate - respond with a:

This certificate is invalid. Contact an administrator.

BTW, this is with Ignition 8.1.9 and Designer on Linux Mint.


Francesco P.

Console log:

15:08:46.328 [AWT-EventQueue-0] INFO Perspective.Designer.Workspace - Launching view with DesignerPageParams 'francescop_home', tab id 'Framework/Breakpoint', using base url https://<my_server_ip>:443/data/perspective/design
15:08:46.331 [AWT-EventQueue-0] INFO ViewResourceEditor - Perspective remote debugging port open at: http://localhost:9222/devtools/inspector.html?ws=localhost:9222/devtools/page/C106909A371C455C493916BE43055D51
15:08:46.333 [AWT-EventQueue-0] WARN Perspective.JavaJsBridge - Bridge target 'window._designerStore' received unexpected return type 'null' 
15:08:46.354 [Browser Thread: 43569] WARN Perspective.Designer.Workspace - No designer store found on window!

It looks like the JXBrowser instance in the Designer may just be using any system proxy configured by default: Proxy

Try setting this JVM arg in addition to your others:

-Dignition.chromium.switch.proxy-server=<host:port>

The ignition.chromium.switch.X system prop sets the respective chromium command line switch --X for JX Browser (the embedded chromium-based web browser used in the Perspective Resource Editor) - in this case, the --proxy-server switch, detailed here.

3 Likes

Yes, that did the trick, thank you very much! :slight_smile:

For future reference, for the lost wanderer, if you are behind an HTTP proxy, you have to:

  1. Edit the file runtime/conf/net.properties under the Designer Launcher installation directory, and set this parameters:
java.net.useSystemProxies=true
http.proxyHost=<proxy_ip>
http.proxyPort=<proxy_port>
https.proxyHost=<proxy_ip>
https.proxyPort=<proxy_port>

This will allow the Launcher to detect the Ignition gateway. Check if you have to exclude some IP of the local network, e.g. for development server.

  1. Inside the Designer Launcher, go into Settings => Designer Defaults, and set the JVM Arguments box with this:
-Dhttps.proxyHost=<proxy_ip>;-Dhttps.proxyPort=<proxy_port>;-Djava.net.preferIPv4Stack=true;-Dignition.chromium.switch.proxy-server=<proxy_ip>:<proxy_port>;

If you don’t have HTTPS enabled on your Ignition server (but why?), than you have to add also this:

-Dhttp.proxyHost=<proxy_ip>;-Dhttp.proxyPort=<proxy_port>;

This will allow the Designer itself to correctly communicate with the gateway. You can also change the settings in a single gateway entry, if you need so.


Francesco P.

2 Likes

Update for SOCKS proxies:

I didn't need the -Djava.net.preferIPv4Stack=true bit.

Unfortunately, I can't get Designer Authentication Strategy = Identity Provider (Type = Ignition) to work with this.

Guessing that's potentially by design, but I don't completely understand the IdP handshake. Any tips/confirmation would be appreciated.

I also can't seem to get socksNonProxyHosts working :confused:

related - is there a way to pass proxy into Workstation?

like the following in Designer:

-Dignition.chromium.switch.proxy-server=socks5://<proxy_ip>:<proxy_port>
-Dignition.chromium.switch.proxy-server=<proxy_ip>:<proxy_port>