0
votes

I have a correctly formed URL for the Blob PUT operation, using Shared Access Signature:

http://xyz.blob.core.windows.net:80/container/BLOB_NAME?sv=2015-04-05&sr=b&sig=xtpL3M2WRWILarpojLnjlacpIWs41%2BosFWiTtAPGwIE%3D&se=2016-03-07T06%3A00%3A59Z&sp=w

Using Fiddler's Composer, I am able to successfully upload data (with "x-ms-blob-type: BlockBlob" header).

However, when I change the URL to "https" -- the PUT fails with Status Code 502, and the following message:

[Fiddler] The connection to 'xyz.blob.core.windows.net' failed.
System.Security.SecurityException Failed to negotiate HTTPS connection with server.fiddler.network.https> HTTPS handshake to xyz.blob.core.windows.net (for #21) failed. System.IO.IOException The handshake failed due to an unexpected packet format.

It surely seems like a problem on Azure's end. How could I get this resolved?

P.S. In Chrome, this problem manifests as "net::ERR_SSL_PROTOCOL_ERROR". In Edge, I get "XMLHttpRequest: Network Error 0x80070005, Access is denied."

2
Please see if this solves the problem when you use Fiddler: telerik.com/forums/io-exception-unexpected-packet-format#Gaurav Mantri
after changing Protocols to "<client>;ssl2;ssl3;tls1.0;tls1.1;tls1.2" the error became: System.Security.SecurityException Failed to negotiate HTTPS connection with server.fiddler.network.https&gt; HTTPS handshake to xyz.blob.core.windows.net (for #54) failed. System.ComponentModel.Win32Exception The client and server cannot communicate, because they do not possess a common algorithmuser4698855
...and with Protocols == "tls1.0;tls1.1;tls1.2", the error is the same as in original question: "The handshake failed due to an unexpected packet format"user4698855

2 Answers

1
votes

Doh! The explicit port in the URL (":80" for HTTP) was the problem.

1
votes

One more point. Just make sure that when you are creating blob service with SAS, provide no protocol info in the host parameter. e.g.

var service = azureBlob.createBlobServiceWithSas("xxxxx.blob.core.windows.net", sasKey);