# Using Ignition Designer behind an http proxy

**URL:** <https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461>\
**Category:** Ignition\
**Tags:** ignition81, perspective\
**Created:** [August 31, 2021, 10:26am UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461 "2021-08-31T10:26:05Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![fpsileno](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/fpsileno/32/12365_2.png) [@fpsileno](https://forum.inductiveautomation.com/u/fpsileno)\
**Post date:** [August 31, 2021, 10:26am UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/1 "2021-08-31T10:26:05Z")

</div>

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? ☹

--  
Francesco P.

 ![Screenshot at 2021-08-31 12-19-50](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/6/e60ad24e3b8a9c6a29f9f83838c598e70b8ca758.jpeg)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 31, 2021, 10:33am UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/2 "2021-08-31T10:33:50Z")

</div>

_Psst! Might want to blur that image…_

---

<div class="post-metadata">

**Author:** ![fpsileno](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/fpsileno/32/12365_2.png) [@fpsileno](https://forum.inductiveautomation.com/u/fpsileno)\
**Post date:** [August 31, 2021, 10:38am UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/3 "2021-08-31T10:38:27Z")

</div>

D’oh! Thanks! 😕

---

<div class="post-metadata">

**Author:** ![fpsileno](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/fpsileno/32/12365_2.png) [@fpsileno](https://forum.inductiveautomation.com/u/fpsileno)\
**Post date:** [August 31, 2021, 11:17am UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/4 "2021-08-31T11:17:12Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![fpsileno](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/fpsileno/32/12365_2.png) [@fpsileno](https://forum.inductiveautomation.com/u/fpsileno)\
**Post date:** [August 31, 2021, 1:10pm UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/5 "2021-08-31T13:10:36Z")

</div>

Console log:

```auto
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!

```

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [August 31, 2021, 1:25pm UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/6 "2021-08-31T13:25:50Z")

</div>

It looks like the JXBrowser instance in the Designer may just be using any system proxy configured by default: [Proxy](https://jxbrowser-support.teamdev.com/docs/guides/proxy.html)

---

<div class="post-metadata">

**Author:** ![jspecht](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jspecht/32/6465_2.png) [@jspecht](https://forum.inductiveautomation.com/u/jspecht)\
**Post date:** [August 31, 2021, 3:26pm UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/7 "2021-08-31T15:26:00Z")

</div>

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](https://peter.sh/experiments/chromium-command-line-switches/#proxy-server).

---

<div class="post-metadata">

**Author:** ![fpsileno](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/fpsileno/32/12365_2.png) [@fpsileno](https://forum.inductiveautomation.com/u/fpsileno)\
**Post date:** [September 2, 2021, 2:06pm UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/8 "2021-09-02T14:06:29Z")

</div>

Yes, that did the trick, thank you very much! 🙂

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:

```auto
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:

```auto
-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.

---

<div class="post-metadata">

**Author:** ![hunterdg](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/hunterdg/32/67774_2.png) [@hunterdg](https://forum.inductiveautomation.com/u/hunterdg)\
**Post date:** [March 23, 2024, 12:12am UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/9 "2024-03-23T00:12:59Z")

</div>

Update for SOCKS proxies:

> [@](#):
>
> 1. Edit the file `runtime/conf/net.properties` under the Designer Launcher installation directory, and set this parameters:
> 
> ```auto
> socksProxyHost=<proxy_ip/hostname>
> socksProxyPort=<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:
> 
> `-DsocksProxyHost=<proxy_ip/hostname>;-DsocksProxyPort=<proxy_port>;-Dignition.chromium.switch.proxy-server=socks5://<proxy_ip/hostname>:<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.

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

---

<div class="post-metadata">

**Author:** ![hunterdg](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/hunterdg/32/67774_2.png) [@hunterdg](https://forum.inductiveautomation.com/u/hunterdg)\
**Post date:** [March 23, 2024, 12:15am UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/10 "2024-03-23T00:15:49Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![hunterdg](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/hunterdg/32/67774_2.png) [@hunterdg](https://forum.inductiveautomation.com/u/hunterdg)\
**Post date:** [April 2, 2024, 4:40pm UTC](https://forum.inductiveautomation.com/t/using-ignition-designer-behind-an-http-proxy/50461/11 "2024-04-02T16:40:23Z")

</div>

I also can't seem to get [socksNonProxyHosts](https://stackoverflow.com/questions/25445875/how-to-set-nonproxyhosts-for-a-socks-proxy) working 😕

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

like the following in Designer:

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