Skip to content

HTTPS Proxy usage for Azure Blob Storage #6917

@lordgamez

Description

@lordgamez

Query/Question
Hi, I am trying to test my application that uses Azure Blob Storage, to check if upload works through a proxy. HTTP proxy seems to be working okay, but when I try to use HTTPS proxy the call fails with "SSL connect error":

2026-01-19 15:59:44.935] [org::apache::nifi::minifi::azure::utils::AzureSdkLogger] [info] HTTP Request : PUT https://azure-storage-server-azure_storage-0:10000/devstoreaccount1/test-container?restype=REDACTED
authorization : REDACTED
user-agent : azsdk-cpp-storage-blobs/12.15.0-beta.2 (Linux 6.8.0-90-generic x86_64 #91~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 20 15:20:45 UTC 2 Cpp/202100)
x-ms-client-request-id : a60ecbde-6a00-411b-9d3e-348f45f37063
x-ms-date : Mon, 19 Jan 2026 15:59:44 GMT
x-ms-version : 2025-07-05
[2026-01-19 15:59:44.936] [org::apache::nifi::minifi::azure::utils::AzureSdkLogger] [debug] [CURL Transport Adapter]: Creating a new session.
[2026-01-19 15:59:44.936] [org::apache::nifi::minifi::azure::utils::AzureSdkLogger] [debug] [CURL Transport Adapter]: Spawn new connection.
[2026-01-19 15:59:44.942] [org::apache::nifi::minifi::azure::utils::AzureSdkLogger] [warning] HTTP Transport error: Fail to get a new connection for: https://azure-storage-server-azure_storage-0:10000. SSL connect error
[2026-01-19 15:59:44.942] [org::apache::nifi::minifi::azure::utils::AzureSdkLogger] [info] HTTP Retry attempt #2 will be made in 1364ms.

In my test environment I am using docker containers for both the HTTP proxy and the Azure Storage. For the HTTP proxy I am using ubuntu/squid:5.2-22.04_beta image and for the Azure Storage I am using mcr.microsoft.com/azure-storage/azurite:3.35.0 image.

For setting up the proxy configuration parameters I am using code like:

Azure::Storage::Blobs::BlobContainerClient createClient(const AzureStorageCredentials &credentials, const std::string &container_name) {
  Azure::Storage::Blobs::BlobClientOptions client_options;

  client_options.Transport.HttpProxy = "https://squid-proxy-0:3129";  
  client_options.Transport.ProxyUserName = "user";
  client_options.Transport.ProxyPassword = "password";

  return Azure::Storage::Blobs::BlobContainerClient::CreateFromConnectionString(credentials.buildConnectionString(), container_name, client_options);
}

Unfortunately in the tests I only found examples for using HTTP proxies using curl. The squid container setup seems to be working as an HTTPS proxy with another cloud provider's storage library, so I'm not sure if it needs to be configured differently in case of azure-sdk. I am using self signed certificates and have the same CA certificate stored at /etc/ssl/certs/ca-certificates.crt for all parties. The call for the proxy from the SDK seems to fail on the squid proxy side before reaching the azurite container:

2026/01/19 16:28:58| Accepting HTTP Socket connections at conn3 local=[::]:3128 remote=[::] FD 12 flags=9
2026/01/19 16:28:58| Accepting HTTPS Socket connections at conn5 local=[::]:3129 remote=[::] FD 13 flags=9
2026/01/19 16:28:58| pinger: Initialising ICMP pinger ...
2026/01/19 16:28:58| pinger: ICMP socket opened.
2026/01/19 16:28:58| pinger: ICMPv6 socket opened
2026/01/19 16:28:59| storeLateRelease: released 0 objects
1768840141.352      0 172.17.0.3 NONE_NONE/000 0 - error:transaction-end-before-headers - HIER_NONE/- -
1768840144.977      0 172.17.0.3 NONE_NONE/000 0 - error:transaction-end-before-headers - HIER_NONE/- -
1768840144.979      0 172.17.0.3 NONE_NONE/000 0 - error:transaction-end-before-headers - HIER_NONE/- -
1768840145.817      0 172.17.0.3 NONE_NONE/000 0 - error:transaction-end-before-headers - HIER_NONE/- -

Is there anything that needs to be used differently when using HTTPS proxies, any other client configuration I am missing? Are HTTPS proxies supported?

Why is this not a Bug or a feature Request?
I am not sure yet if this is a bug or a missing feature, or just a misconfiguration on my part.

Setup (please complete the following information if applicable):

  • OS: Ubuntu 22.04
  • IDE : vscode
  • Version of the Library used: azure-identity_1.13.0

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

  • Query Added
  • Setup information Added

Metadata

Metadata

Assignees

No one assigned

    Labels

    Azure.Corecustomer-reportedIssues that are reported by GitHub users external to the Azure organization.needs-triageWorkflow: This is a new issue that needs to be triaged to the appropriate team.questionThe issue doesn't require a change to the product in order to be resolved. Most issues start as that

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions