I have issue with connectivity using Azure IoT Edge behind Zscaler. I know that I need to somehow install the ZScaler cerificate on host machine and Docker containers. I was able to install it in Ubuntu server and it worked because right now I get green indicate that host can connect to azure-devices.net. But it still can't connect from container network. Can anyone provide me details how to do that? From what I understand I should provide the info to edgeHub and edgeAgent DockerFile, I just can't locate them. Will i need to build new images for that? Because edgeAgent doesn't have connectivity to cloud I can't modify anything in the deploy manifest.
How to add ZScaler certificate to edgeHub and edgeAgent?
602 views Asked by Maci3jPy At
1
There are 1 answers
Related Questions in AZURE-IOT-HUB
- Angular Show All When No Filter Is Supplied
- Why does a function show up as not defined
- I count the time the user takes to solve my quiz using Javascript but I want the same time displayed on another page
- Set "More" "Less" font size
- Using pagination on a table in AngularJS
- How to sort these using Javascript or Jquery Most effectively
- how to fill out the table with next values in array with one button
- State with different subviews
- Ajax jQuery firing multiple time display event for the same result
- Getting and passing MVC Model data to AngularJS controller
Related Questions in AZURE-IOT-EDGE
- Angular Show All When No Filter Is Supplied
- Why does a function show up as not defined
- I count the time the user takes to solve my quiz using Javascript but I want the same time displayed on another page
- Set "More" "Less" font size
- Using pagination on a table in AngularJS
- How to sort these using Javascript or Jquery Most effectively
- how to fill out the table with next values in array with one button
- State with different subviews
- Ajax jQuery firing multiple time display event for the same result
- Getting and passing MVC Model data to AngularJS controller
Related Questions in AZURE-IOT-HUB-DEVICE-MANAGEMENT
- Angular Show All When No Filter Is Supplied
- Why does a function show up as not defined
- I count the time the user takes to solve my quiz using Javascript but I want the same time displayed on another page
- Set "More" "Less" font size
- Using pagination on a table in AngularJS
- How to sort these using Javascript or Jquery Most effectively
- how to fill out the table with next values in array with one button
- State with different subviews
- Ajax jQuery firing multiple time display event for the same result
- Getting and passing MVC Model data to AngularJS controller
Related Questions in ZSCALER
- Angular Show All When No Filter Is Supplied
- Why does a function show up as not defined
- I count the time the user takes to solve my quiz using Javascript but I want the same time displayed on another page
- Set "More" "Less" font size
- Using pagination on a table in AngularJS
- How to sort these using Javascript or Jquery Most effectively
- how to fill out the table with next values in array with one button
- State with different subviews
- Ajax jQuery firing multiple time display event for the same result
- Getting and passing MVC Model data to AngularJS controller
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
You can use a bind to mount the required certificate into the edgeAgent and edgeHub containers. What you mount will vary upon if you are using Edge 1.1 or 1.2.
For Edge 1.1, you will need to copy the ca-certificates.crt file from /etc/ssl/certs on the container, append the Zscaler root certificate (in pem format) to that file, and then mount it to each container with a bind as /etc/ssl/certs/ca-certificates.crt. Your config.yaml should look something like this:
For Edge 1.2, you will need to generate the hash value of the certificate that is used by OpenSSL to find the correct root certificate. You can do this with the command:
where zscalerroot.crt is your Zscaler root. This will create a symbolic link with eight hex digits followed by .0 to your zscaler certificate. You can then bind the Zscaler root certificate into /etc/openssl/certs but name it in the container with the name you just generated. Your config.toml should look something like this snippet:
Where the 001122ff.0 is the name generated by the ln command.
You will also need to add the bind into the deployment JSON. This will be in the runtime settings in the Azure portal when you use the set modules functionality. You need to add it to the HostConfig.
For edgeAgent under 1.1 for example:
And for edgeAgent under 1.2:
You will need to add a similar bind to edgeHub's runtime settings too.
Caveat: I have got this to work with Edge 1.1. I have not had an opportunity to test the 1.2 yet.