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?
658 Views Asked by Maci3jPy At
1
There are 1 best solutions below
Related Questions in AZURE-IOT-HUB
- Azure IOT Hub Rest API Unauthorized
- Stream Analytics: Dynamic output path based on message payload
- Iot Hub connection string not working in azure-iot-sdk-c samples
- Azure,Android,Raspberry pi
- Any APIs to get list of consumer groups created in Azure IotHub?
- In queue message count in service bus
- Uploading an image with Azure IoT SDK for Python
- Azure IoT Python SDK how to set content type on uploaded images
- Bi-Directional Communication via IoTHub/Xamarin App/ESP8266
- How to delete all devices from Azure IoT Hub using C#?
- Limits of Azure IoT hub device twin reported properties
- Android - Azure Live data Stream to cloud
- Azure IoT hub C sdk blob upload example possible without low level API?
- Message payload change while adding extra property in the main eventmessage to IoT Hub - (Using rest client)
- send data from Rfid rc522 to azure iot hub using nodejs
Related Questions in AZURE-IOT-EDGE
- Is it possible to unit test iot edge code?
- IoT Edge Module stops sending data
- Error sending messages to module in edgeHub
- Sending C2D message to Azure IoT Edge
- Setup Iot Edge Simulator issue when we are giving iot edge connection string
- Howto send UDP Broadcast messages for Module running on Azure IoT Runtime
- AZ IoTEdge Connect-eFlowVM "Connection timed out during banner exchange"
- SAS Token Handling for Custom Module Connectivity in Azure IoT Edge
- Iot Edge for Linux on Windows (EFLOW) fails the deployment
- Can I deploy a Docker Image based in Rust to an Azure IoT Edge Device Module?
- Can we create with same deviceid in both IOT Edge and Devices under IOT Hub Device management
- How to debug IOT edge modules running as Linux containers from Visual studio
- MS IotEdge eFlow: Connect-EflowVM error - wants password
- Using iotedgehubdev generated iothub modules don't run locally due to "repository name must be lowercase"
- Environment variable IOTEDGE_WORKLOADURI is required in Java azure IoT SDK using ModuleClient Class
Related Questions in AZURE-IOT-HUB-DEVICE-MANAGEMENT
- Enrich device life cycle events Azure IoT Hub
- Setup Iot Edge Simulator issue when we are giving iot edge connection string
- Timeline of Iot edge reported clients status
- Azure edge layered deployment not reapplied when base deployment modified
- How to add ZScaler certificate to edgeHub and edgeAgent?
- How do we change the TLS version of Azure IoT Hub which is already created and deployed?
- IOT FW update process - Azure IOT vs Google IOT
- how to connect the mass products to azure?
- Issue In Installing Azure IoT Python SDK
- Azure IotHub routing is not functioning
- Fetch twin from Azure device sdk
- Unauthorized exception when using Azure IoT Hub Device Provisioning Service (DPS)
- What does `--auth-type login` mean in Azure CLI?
- Azure IoT Device to Cloud, Metrics graph drops to zero at a particular time stamp
- Programmatically regenerate keys for group enrollments in Azure Device provisioning Service (DPS)
Related Questions in ZSCALER
- Zscaler API Example Code
- ECONNREFUSED 127.0.0.1:9000 on OmniSharp install in Visual Studio Code on WSL2 behind corporate cloud proxy
- ServiceUnavailable: 503 failed. Ssl handshake failed: SSL_ERROR_SSL: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
- Cannot build docker image with Zscaler
- Cannot attach an existing OS disk if the VM is created from a platform, user or a shared galley image Azure
- Office add-in sometimes won't load and instead opens webpage
- How to add ZScaler certificate to edgeHub and edgeAgent?
- RestSharp issues integrating with zscaler product will not work on IIS Server 2012 R2
- Making HTTPS requests within a Docker image behind a Zscaler firewall
- upload file to ftp server over http proxy using php/curl stopped by zscaler
- Duplicated and unauthenticated requests from users from a corporation using Zscaler for authentication
- curl: (60) SSL certificate problem: when uploading behind proxy
- Unable to establish IPSec tunnel between GCP VPN (Classic) and Zscaler ZEN (Zscaler Enforcement Node)
- Authenticate proxy in Python Selenium (zscalar)
- conda: pip fails in venv due to SSL verification problems - how to make it work as in base environment
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)
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?
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.