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?
661 views Asked by Maci3jPy At
1
There are 1 answers
Related Questions in AZURE-IOT-HUB
- IoT Hub Equivalent For IoT Central Offline commands
- Alternatives for azure-iot-hub python package
- Azure Device Update for IoT Hub & Deployment
- How to retrieve IotHub usage information inside Azure Function
- Upload device's x509 certificate to Azure Iothub
- Too many requests error while creating scheduled jobs in IOT central create job API
- 'Too many requests' error on Azure IOT central create job API
- After updating a reported property, attempting to fetch it returns the previous version, not the latest one in Azure Module Client
- Azure Data Manager for Agriculture - Sensor Telemetry Data
- Connecting to RabbitMQ with Azure IoT Hub Device client
- MQTT: Connection to Azure IoT Hub (Micropython)
- AT Commands to send/publish data to azure iot hub using sim808
- Couldn't get IoT Central offline command to work
- Azure IoT DPS - Enrollment Group - Create Or Update - Rest API
- How do I use Azure IoT SDK (C#) to develop code to send data from my robotic arm to my IoT hub?
Related Questions in AZURE-IOT-EDGE
- Get Eflow status from a remote machine via ssh and python: does not execute powershell command
- Turn .Net 6 Background Service app as IoT Edge Module
- Problem with running Azure spatial-analysis container
- After updating a reported property, attempting to fetch it returns the previous version, not the latest one in Azure Module Client
- Azure IoT DPS - Enrollment Group - Create Or Update - Rest API
- Azure IoT Edge. Module Twin Configuration. Create a target condition based of device twin tags?
- IotEdge eFlow: copyEflowVMFile raises errors in Vsock
- Device troubleshooting tools
- GPIO / System.Device.Gpio / RegisterCallbackForPinValueChangedEvent / Rising and Falling Continuously with circuit closed
- IOT Edge for Linux on Windows (eflow) - nested VM deployement - proxy settings - corporate firewall
- How to send tool data from telemetry Azure IoT Hub to Azure Functions?
- Environment variable IOTEDGE_WORKLOADURI is required in Java azure IoT SDK using ModuleClient Class
- Using iotedgehubdev generated iothub modules don't run locally due to "repository name must be lowercase"
- MS IotEdge eFlow: Connect-EflowVM error - wants password
- How to debug IOT edge modules running as Linux containers from Visual studio
Related Questions in AZURE-IOT-HUB-DEVICE-MANAGEMENT
- Azure Data Manager for Agriculture - Sensor Telemetry Data
- How Achieve AWS MQTT topics in azure IoT and what is the work around for the similar functionality
- Is it possible to send a D2C request to an Azure IOTHub device using the device primary key without using the device ID or device hostname?
- Device provisioned with DPS always shown as "X509 self-signed" instead of "Certificate Authority"
- IotHubTrigger Is not working in Azure Function
- [Azure IoT Edge]Secure device certificate and key
- Module Twins with config file size limit exceeded on IoT Edge behind a gateway architecture
- How to get C2D messages that are put in Dead Letter Queue (DLQ)?
- RegistryManager from a Module / Silent fail
- edgeAgent continues to "connect" after device is shutdown
- Azure IOT Hub module / Environmental Variable
- How to generate command output in IoT Central Azure SDK C
- How to get the route messaging details in IOT hub in python?
- Terraform Create Azure IoT Device Provisioning Service Enrollment Group
- Programmatically regenerate keys for group enrollments in Azure Device provisioning Service (DPS)
Related Questions in ZSCALER
- Debian OpenSSL zscaler issue php
- SSL certificate problem: unable to get local issuer certificate: zscaler
- SSL Error while installing Rust with curl and sh in network with custom SSL Provider
- 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
- Cannot build docker image with Zscaler
- ServiceUnavailable: 503 failed. Ssl handshake failed: SSL_ERROR_SSL: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
- Configure OWASP ZAP and ZScaler
- File not getting uploaded to server request is resulting in 502 Bad Gateway
- Zscaler Client Connector Exit Password
- Running Unity Hub behind the proxy
- Android studio / Unable to launch test App in emulator due to VPN (zscaler)
- zScaler proxy: ZAP Error [java.net.SocketException]: Connection reset
- Android Emulator internet connectivity issue
- podman build fails with SSL routines:tls_post_process_server_certificate:certificate verify failed
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?
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.