I referred to the curl sample and wrote the following program.

```C
#include <ctype.h>
#include <curl/curl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct data {
    char trace_ascii; /* 1 or 0 */
};

struct MemoryStruct {
    char  *memory;
    size_t size;
};

static void dump(const char *text, FILE *stream, unsigned char *ptr, size_t 
size, char nohex)
{
    size_t       i;
    size_t       c;

    unsigned int width = 0x10;

    if (nohex) /* without the hex output, we can fit more on screen */
        width = 0x40;

    fprintf(stream, "%s, %10.10lu bytes (0x%8.8lx)\n", text, (unsigned 
long)size, (unsigned long)size);

    for (i = 0; i < size; i += width) {
        fprintf(stream, "%4.4lx: ", (unsigned long)i);

        if (!nohex) {
            /* hex not disabled, show it */
            for (c = 0; c < width; c++)
                if (i + c < size)
                    fprintf(stream, "%02x ", ptr[i + c]);
                else
                    fputs("   ", stream);
        }

        for (c = 0; (c < width) && (i + c < size); c++) {
            /* check for 0D0A; if found, skip past and start a new line of 
output */
            if (nohex && (i + c + 1 < size) && ptr[i + c] == 0x0D && ptr[i + c 
+ 1] == 0x0A) {
                i += (c + 2 - width);
                break;
            }
            fprintf(stream, "%c", (ptr[i + c] >= 0x20) && (ptr[i + c] < 0x80) ? 
ptr[i + c] : '.');
            /* check again for 0D0A, to avoid an extra \n if it's at width */
            if (nohex && (i + c + 2 < size) && ptr[i + c + 1] == 0x0D && ptr[i 
+ c + 2] == 0x0A) {
                i += (c + 3 - width);
                break;
            }
        }
        fputc('\n', stream); /* newline */
    }
    fflush(stream);
}

static int my_trace(CURL *handle, curl_infotype type, char *data, size_t size, 
void *userp)
{
    struct data *config = (struct data *)userp;
    const char  *text;
    (void)handle; /* prevent compiler warning */

    switch (type) {
        case CURLINFO_TEXT:
            fprintf(stderr, "== Info: %s", data);
            /* FALLTHROUGH */
        default: /* in case a new one is introduced to shock us */
            return 0;

        case CURLINFO_HEADER_OUT:
            text = "=> Send header";
            break;
        case CURLINFO_DATA_OUT:
            text = "=> Send data";
            break;
        case CURLINFO_SSL_DATA_OUT:
            text = "=> Send SSL data";
            break;
        case CURLINFO_HEADER_IN:
            text = "<= Recv header";
            break;
        case CURLINFO_DATA_IN:
            text = "<= Recv data";
            break;
        case CURLINFO_SSL_DATA_IN:
            text = "<= Recv SSL data";
            break;
    }

    dump(text, stderr, (unsigned char *)data, size, config->trace_ascii);
    return 0;
}

static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, 
void *userp)
{
    size_t               realsize = size * nmemb;
    struct MemoryStruct *mem = (struct MemoryStruct *)userp;

    char                *ptr = realloc(mem->memory, mem->size + realsize + 1);
    if (!ptr) {
        /* out of memory! */
        printf("not enough memory (realloc returned NULL)\n");
        return 0;
    }

    mem->memory = ptr;
    memcpy(&(mem->memory[mem->size]), contents, realsize);
    mem->size += realsize;
    mem->memory[mem->size] = 0;

    return realsize;
}

int main(void)
{
    CURL               *curl_ptr = NULL;
    struct data         config;
    struct MemoryStruct chunk;
    struct curl_slist  *headers_ptr = NULL;
    char                subscriptionHeader[128];
    CURLcode            res;

    config.trace_ascii = 1;   /* enable ascii tracing */
    chunk.memory = malloc(1); /* will be grown as needed by realloc above */
    chunk.size = 0;           /* no data at this point */

    curl_ptr = curl_easy_init();
    if (curl_ptr) {
        headers_ptr = curl_slist_append(headers_ptr, "Content-Length: 0");

        snprintf(subscriptionHeader, 128, "%s: %s", 
"Ocp-Apim-Subscription-Key", "My-Key");
        headers_ptr = curl_slist_append(headers_ptr, subscriptionHeader);

        curl_easy_setopt(curl_ptr, CURLOPT_URL, 
"https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken";);
        curl_easy_setopt(curl_ptr, CURLOPT_POST, 1L);

        if (NULL != headers_ptr) {
            curl_easy_setopt(curl_ptr, CURLOPT_HTTPHEADER, headers_ptr);
        }

        curl_easy_setopt(curl_ptr, CURLOPT_DEBUGFUNCTION, my_trace);
        curl_easy_setopt(curl_ptr, CURLOPT_DEBUGDATA, &config);

        /* the DEBUGFUNCTION has no effect until we enable VERBOSE */
        curl_easy_setopt(curl_ptr, CURLOPT_VERBOSE, 1L);

        /* send all data to this function  */
        curl_easy_setopt(curl_ptr, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);

        /* we pass our 'chunk' struct to the callback function */
        curl_easy_setopt(curl_ptr, CURLOPT_WRITEDATA, (void *)&chunk);

        /* Perform the request, res will get the return code */
        res = curl_easy_perform(curl_ptr);

        curl_slist_free_all(headers_ptr);

        /* Check for errors */
        if (res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", 
curl_easy_strerror(res));
        } else {
            /*
             * Now, our chunk.memory points to a memory block that is chunk.size
             * bytes big and contains the remote file.
             *
             * Do something nice with it!
             */
            printf("%s\n", chunk.memory);
        }

        /* always cleanup */
        curl_easy_cleanup(curl_ptr);
    }
    free(chunk.memory);
    curl_global_cleanup();
    return 0;
}
```

But the program freezes and the log is as follows.

```bash
root@db4f56f11d6f:/# gcc get_token.c -o get_token -lcurl
root@db4f56f11d6f:/# ./get_token
== Info:   Trying 20.205.69.100:443...
== Info: Connected to eastasia.api.cognitive.microsoft.com (20.205.69.100) port 
443 (#0)
== Info: ALPN, offering h2
== Info: ALPN, offering http/1.1
== Info:  CAfile: /etc/ssl/certs/ca-certificates.crt
== Info:  CApath: /etc/ssl/certs
== Info: TLSv1.0 (OUT), TLS header, Certificate Status (22):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: .....
== Info: TLSv1.3 (OUT), TLS handshake, Client hello (1):
=> Send SSL data, 0000000512 bytes (0x00000200)
0000: ......Es}.w....j=^..R..I.h....Z....lOY .....4.d..L....\.......&4
0040: ._,SiE..>.......,.0.........+./...$.(.k.#.'.g.....9.....3.....=.
0080: <.5./.....u...).'..$eastasia.api.cognitive.microsoft.com........
00c0: ..........................3t.........h2.http/1.1.........1.....*
0100: .(.........................................+........-.....3.&.$.
0140: .. w........B.].......<...M'..e*w'7.............................
0180: ................................................................
01c0: ................................................................
== Info: TLSv1.2 (IN), TLS header, Certificate Status (22):
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: .....
== Info: TLSv1.3 (IN), TLS handshake, Server hello (2):
<= Recv SSL data, 0000000098 bytes (0x00000062)
0000: ...^..d.6A........|....jP......~.n6u.. >...Z..,.3A]Q....G.5.f.A&
0040: .@o.....0..........h2.............
== Info: TLSv1.2 (IN), TLS handshake, Certificate (11):
<= Recv SSL data, 0000003808 bytes (0x00000ee0)
0000: ..........0...0..........3....7!6C.D........0...*.H........0Y1.0
0040: ...U....US1.0...U....Microsoft Corporation1*0(..U...!Microsoft A
0080: zure TLS Issuing CA 020...230720152207Z..240627235959Z0{1.0...U.
00c0: ...US1.0...U....WA1.0...U....Redmond1.0...U....Microsoft Corpora
0100: tion1-0+..U...$eastasia.api.cognitive.microsoft.com0.."0...*.H..
0140: ...........0...........s..P(Pff.v.?w*..w...c...6.....I.a........
0180: ...}.....L0.VO,./.*....r....._..-..-.X......3C........2..A.!.0..
01c0: .tD..4.S!....?..;.p+/..[.>.4..rcg.......?..3t....8.g...4f.}0.]D>
0200: ..m.m..):.Q....oL..n....i.......#w8%a?...h.Wt .. Cb..XY......<.-
0240: ...-..[.#.\..... V..........u0..q0..~..+.....y......n...j.h.w...
0280: .d.....\......2.F|....QHYFq.......s........H0F.!.....}..q.%.+>.
02c0: 8..?P.L.*......N..!....#......@6.ABE....,+.4k.T!.....u.H..k..G4.
0300: .j...0..R..V.,.....9..s....s........F0D. [4yd.....z..r...'.....L
0340: k.:.z..$.. '..$o.9Af..!"...a.n.a...2....qK..v....k?.."....\k.p.q
0380: l.Q..4..=0H.......s..).....G0E. ....+....$.......|&..1/b...1....
03c0: .!......cM.....8..m..$.1.e..W..4.^.0'..+.....7....0.0...+.......
0400: 0...+.......0<..+.....7.../0-.%+.....7.........F...........]...i
0440: ...>..d..&0....+..........0..0m..+.....0..ahttp://www.microsoft.
0480: com/pkiops/certs/Microsoft%20Azure%20TLS%20Issuing%20CA%2002%20-
04c0: %20xsign.crt0-..+.....0..!http://oneocsp.microsoft.com/ocsp0...U
0500: ............BK.X.p.=......0...U...........0....U.....0.$eastasi
0540: a.api.cognitive.microsoft.com.$eastasia.dev.cognitive.microsoft.
0580: com..*.cognitiveservices.azure.com..*.openai.azure.com0...U.....
05c0: ..0.0d..U...]0[0Y.W.U.Shttp://www.microsoft.com/pkiops/crl/Micro
0600: soft%20Azure%20TLS%20Issuing%20CA%2002.crl0f..U. ._0]0Q..+.....7
0640: L.}..0A0?..+........3http://www.microsoft.com/pkiops/Docs/Reposi
0680: tory.htm0...g.....0...U.#..0.......!b&...y.aA.`.bg.0...U.%..0...
06c0: +.........+.......0...*.H.............I.....!Lu:.F"w....O.....'0
0700: [0....~.%t.H."...........j3.....&I!.+4....&......{..#......R.N'
0740: V...<.....=.].iB9ne.... ..C.$..........I=.....F.g....Xv.5.}>...
0780: 6....3.wC+V)...-.^..t. 3S......Y.h..7.z...z......v]y)2......#p`.
07c0: ......6.=....S.=..,....u.d.....|.f...MF.|<r9.-..jY..p..ioe.-2.(.
0800: .....3.`.Hx.....p..%.....C.%..<....2 1.|.Q.~."....7...|..=.....Z
0840: ...z..6z...H;ck?....{...U.>..vE...9~G...p....D...u|9....C..~.ooh
0880: j.6.....g=Y...?...:.(....m.G.:|.=`+.O.A...K.....C..i.......=...n
08c0: xP..:.w.r...._gK........<.+.$....\.......0...0...........j.|....
0900: ......2.0...*.H........0a1.0...U....US1.0...U....DigiCert Inc1.0
0940: ...U....www.digicert.com1 0...U....DigiCert Global Root G20...20
0980: 0729123000Z..240627235959Z0Y1.0...U....US1.0...U....Microsoft Co
09c0: rporation1*0(..U...!Microsoft Azure TLS Issuing CA 020.."0...*.H
0a00: .............0.........b;R..N.....bd........-...#l.R.<.Z..Ph....
0a40: .....)a2!.5....O.I..L.......F.(.....*.As.........Y.#....b."+....
0a80: .?..q....k4..#(..$.K.e..].C.V...C).C&...I....P...U.M..8.+!.]....
0ac0: .8t..+/.9..y......!....h*......;x.y.$ XC..s~....f..1J...I,.O.'..
0b00: ..K..........O...?......m.'.$V.4.%C...X]......%.#....p.....'...z
0b40: .n.?...tX.A.@...+....P9....5.JX...PQ.l..g....m...~....A..Af@.Wy.
0b80: ..W....7..u}._.b..-n.Jjqd..\L.9{S.l.W.$ ...1{....m.\./T...-O....
0bc0: .o.l...Q....J..-Xa....U....K.:'&tfJ...S..*.."\.d.:..X.3^..Zp...i
0c00: ."B...PW8...c".`i..o..........0...0...U..........!b&...y.aA.`.b
0c40: g.0...U.#..0...N"T ....n..........90...U...........0...U.%..0...
0c80: +.........+.......0...U.......0.......0v..+........j0h0$..+.....
0cc0: 0...http://ocsp.digicert.com0@..+.....0..4http://cacerts.digicer
0d00: t.com/DigiCertGlobalRootG2.crt0{..U...t0r07.5.3.1http://crl3.dig
0d40: icert.com/DigiCertGlobalRootG2.crl07.5.3.1http://crl4.digicert.c
0d80: om/DigiCertGlobalRootG2.crl0...U. ..0.0...g.....0...g.....0...+.
0dc0: ....7.......0...*.H.............3....c.M..An..:.. S....G.e..G_7.
0e00: ~.JAZ.a..B.....&J..:O..O..~W/l..RAV.P.tA..,y.m~..q1...X.x.N.....
0e40: NC..Y.aF..<..<aG@.....E.."..Y=B.X."wV.AS9..R.(...N....R....t>K.
0e80: ....r.{..l...=g.9q..nw....'..^...l..v.?...?..=.n/A,;s .-..%.5zy.
0ec0: [..7)A.T...........'w.....hN..^.
== Info: TLSv1.2 (IN), TLS handshake, Server key exchange (12):
<= Recv SSL data, 0000000365 bytes (0x0000016d)
0000: ...i...a...#9V.p....".h..(a8.6.Jp..........Z..bd.9.E.^..p@X.o...
0040: $hU.+....-...e..,2b..C*O.3.ql........._l.....L.R.c.Qw.{...1l.M..
0080: ......k.\A..........I3....T.}..3.....^...,.a)..7X.lfk`..>i.i)T.
00c0: SZj>.i....2.N%.Z.......OM...3.........T..X.i.~...y..gy..qLxz..,
0100: ....C....6;.*......=......{Mw.mk.E:'....."...S.)/...B......(.s".
0140: @~.b...._....4G=.g........P...'Rh...BM 'B.Y>
== Info: TLSv1.2 (IN), TLS handshake, Server finished (14):
<= Recv SSL data, 0000000004 bytes (0x00000004)
0000: ....
== Info: TLSv1.2 (OUT), TLS header, Certificate Status (22):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....f
== Info: TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
=> Send SSL data, 0000000102 bytes (0x00000066)
0000: ...ba.........V.!.(..=QK..L. j.S...dT,.{)..j..:....I..MyC.. ....
0040: ...P.e.Gf..,r,..H.@..[Gu.....z.I......
== Info: TLSv1.2 (OUT), TLS header, Finished (20):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: .....
== Info: TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
=> Send SSL data, 0000000001 bytes (0x00000001)
0000: .
== Info: TLSv1.2 (OUT), TLS header, Certificate Status (22):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....(
== Info: TLSv1.2 (OUT), TLS handshake, Finished (20):
=> Send SSL data, 0000000016 bytes (0x00000010)
0000: ......R&.s.2...|
== Info: TLSv1.2 (IN), TLS header, Finished (20):
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: .....
== Info: TLSv1.2 (IN), TLS header, Certificate Status (22):
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: ....(
== Info: TLSv1.2 (IN), TLS handshake, Finished (20):
<= Recv SSL data, 0000000016 bytes (0x00000010)
0000: ...........Vo*.H
== Info: SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
== Info: ALPN, server accepted to use h2
== Info: Server certificate:
== Info:  subject: C=US; ST=WA; L=Redmond; O=Microsoft Corporation; 
CN=eastasia.api.cognitive.microsoft.com
== Info:  start date: Jul 20 15:22:07 2023 GMT
== Info:  expire date: Jun 27 23:59:59 2024 GMT
== Info:  subjectAltName: host "eastasia.api.cognitive.microsoft.com" matched 
cert's "eastasia.api.cognitive.microsoft.com"
== Info:  issuer: C=US; O=Microsoft Corporation; CN=Microsoft Azure TLS Issuing 
CA 02
== Info:  SSL certificate verify ok.
== Info: Using HTTP2, server supports multiplexing
== Info: Connection state changed (HTTP/2 confirmed)
== Info: Copying HTTP/2 data in stream buffer to connection buffer after 
upgrade: len=0
== Info: TLSv1.2 (OUT), TLS header, Supplemental data (23):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....0
== Info: TLSv1.2 (OUT), TLS header, Supplemental data (23):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....3
== Info: TLSv1.2 (OUT), TLS header, Supplemental data (23):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....%
== Info: Using Stream ID: 1 (easy handle 0x5603cf886130)
== Info: TLSv1.2 (OUT), TLS header, Supplemental data (23):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: .....
=> Send header, 0000000222 bytes (0x000000de)
0000: POST /sts/v1.0/issueToken HTTP/2
0022: Host: eastasia.api.cognitive.microsoft.com
004e: accept: */*
005b: content-length: 0
006e: ocp-apim-subscription-key: My-Key
00ab: content-type: application/x-www-form-urlencoded
00dc:
== Info: TLSv1.2 (IN), TLS header, Supplemental data (23):
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: ....@
== Info: TLSv1.2 (OUT), TLS header, Supplemental data (23):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....!
^C
root@db4f56f11d6f:/#
```

I try the curl command, it works.

```bash
$ curl -v -X POST 
"https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken"; \
    -H "Content-Length: 0" \
    -H "Ocp-Apim-Subscription-Key: My-key"
My-token
```

After add the line `curl_easy_setopt(curl_ptr, CURLOPT_HTTP_VERSION, 
(long)CURL_HTTP_VERSION_1_1);`, I get token successfully.

```bash
root@db4f56f11d6f:/# gcc get_token.c -o get_token -lcurl
root@db4f56f11d6f:/# ./get_token
== Info:   Trying 20.205.69.100:443...
== Info: Connected to eastasia.api.cognitive.microsoft.com (20.205.69.100) port 
443 (#0)
== Info: ALPN, offering http/1.1
== Info:  CAfile: /etc/ssl/certs/ca-certificates.crt
== Info:  CApath: /etc/ssl/certs
== Info: TLSv1.0 (OUT), TLS header, Certificate Status (22):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: .....
== Info: TLSv1.3 (OUT), TLS handshake, Client hello (1):
=> Send SSL data, 0000000512 bytes (0x00000200)
0000: .......y.(0|.`.\.e[R.._.6..Z......f# . .^.v..W.{.1..Tm.>..&.9~..
0040: o-......>.......,.0.........+./...$.(.k.#.'.g.....9.....3.....=.
0080: <.5./.....u...).'..$eastasia.api.cognitive.microsoft.com........
00c0: ..........................3t.........http/1.1.........1.....*.(.
0100: ........................................+........-.....3.&.$...
0140: ).db...i/.F..V4.k4CQ..3.........................................
0180: ................................................................
01c0: ................................................................
== Info: TLSv1.2 (IN), TLS header, Certificate Status (22):
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: .....
== Info: TLSv1.3 (IN), TLS handshake, Server hello (2):
<= Recv SSL data, 0000000104 bytes (0x00000068)
0000: ...d..d.7/..i.q..F0........%_p...l.#.. .:...&......E..Q.|#.*6.C
0040: .o)mw...0..........http/1.1.............
== Info: TLSv1.2 (IN), TLS handshake, Certificate (11):
<= Recv SSL data, 0000003808 bytes (0x00000ee0)
0000: ..........0...0..........3....7!6C.D........0...*.H........0Y1.0
0040: ...U....US1.0...U....Microsoft Corporation1*0(..U...!Microsoft A
0080: zure TLS Issuing CA 020...230720152207Z..240627235959Z0{1.0...U.
00c0: ...US1.0...U....WA1.0...U....Redmond1.0...U....Microsoft Corpora
0100: tion1-0+..U...$eastasia.api.cognitive.microsoft.com0.."0...*.H..
0140: ...........0...........s..P(Pff.v.?w*..w...c...6.....I.a........
0180: ...}.....L0.VO,./.*....r....._..-..-.X......3C........2..A.!.0..
01c0: .tD..4.S!....?..;.p+/..[.>.4..rcg.......?..3t....8.g...4f.}0.]D>
0200: ..m.m..):.Q....oL..n....i.......#w8%a?...h.Wt .. Cb..XY......<.-
0240: ...-..[.#.\..... V..........u0..q0..~..+.....y......n...j.h.w...
0280: .d.....\......2.F|....QHYFq.......s........H0F.!.....}..q.%.+>.
02c0: 8..?P.L.*......N..!....#......@6.ABE....,+.4k.T!.....u.H..k..G4.
0300: .j...0..R..V.,.....9..s....s........F0D. [4yd.....z..r...'.....L
0340: k.:.z..$.. '..$o.9Af..!"...a.n.a...2....qK..v....k?.."....\k.p.q
0380: l.Q..4..=0H.......s..).....G0E. ....+....$.......|&..1/b...1....
03c0: .!......cM.....8..m..$.1.e..W..4.^.0'..+.....7....0.0...+.......
0400: 0...+.......0<..+.....7.../0-.%+.....7.........F...........]...i
0440: ...>..d..&0....+..........0..0m..+.....0..ahttp://www.microsoft.
0480: com/pkiops/certs/Microsoft%20Azure%20TLS%20Issuing%20CA%2002%20-
04c0: %20xsign.crt0-..+.....0..!http://oneocsp.microsoft.com/ocsp0...U
0500: ............BK.X.p.=......0...U...........0....U.....0.$eastasi
0540: a.api.cognitive.microsoft.com.$eastasia.dev.cognitive.microsoft.
0580: com..*.cognitiveservices.azure.com..*.openai.azure.com0...U.....
05c0: ..0.0d..U...]0[0Y.W.U.Shttp://www.microsoft.com/pkiops/crl/Micro
0600: soft%20Azure%20TLS%20Issuing%20CA%2002.crl0f..U. ._0]0Q..+.....7
0640: L.}..0A0?..+........3http://www.microsoft.com/pkiops/Docs/Reposi
0680: tory.htm0...g.....0...U.#..0.......!b&...y.aA.`.bg.0...U.%..0...
06c0: +.........+.......0...*.H.............I.....!Lu:.F"w....O.....'0
0700: [0....~.%t.H."...........j3.....&I!.+4....&......{..#......R.N'
0740: V...<.....=.].iB9ne.... ..C.$..........I=.....F.g....Xv.5.}>...
0780: 6....3.wC+V)...-.^..t. 3S......Y.h..7.z...z......v]y)2......#p`.
07c0: ......6.=....S.=..,....u.d.....|.f...MF.|<r9.-..jY..p..ioe.-2.(.
0800: .....3.`.Hx.....p..%.....C.%..<....2 1.|.Q.~."....7...|..=.....Z
0840: ...z..6z...H;ck?....{...U.>..vE...9~G...p....D...u|9....C..~.ooh
0880: j.6.....g=Y...?...:.(....m.G.:|.=`+.O.A...K.....C..i.......=...n
08c0: xP..:.w.r...._gK........<.+.$....\.......0...0...........j.|....
0900: ......2.0...*.H........0a1.0...U....US1.0...U....DigiCert Inc1.0
0940: ...U....www.digicert.com1 0...U....DigiCert Global Root G20...20
0980: 0729123000Z..240627235959Z0Y1.0...U....US1.0...U....Microsoft Co
09c0: rporation1*0(..U...!Microsoft Azure TLS Issuing CA 020.."0...*.H
0a00: .............0.........b;R..N.....bd........-...#l.R.<.Z..Ph....
0a40: .....)a2!.5....O.I..L.......F.(.....*.As.........Y.#....b."+....
0a80: .?..q....k4..#(..$.K.e..].C.V...C).C&...I....P...U.M..8.+!.]....
0ac0: .8t..+/.9..y......!....h*......;x.y.$ XC..s~....f..1J...I,.O.'..
0b00: ..K..........O...?......m.'.$V.4.%C...X]......%.#....p.....'...z
0b40: .n.?...tX.A.@...+....P9....5.JX...PQ.l..g....m...~....A..Af@.Wy.
0b80: ..W....7..u}._.b..-n.Jjqd..\L.9{S.l.W.$ ...1{....m.\./T...-O....
0bc0: .o.l...Q....J..-Xa....U....K.:'&tfJ...S..*.."\.d.:..X.3^..Zp...i
0c00: ."B...PW8...c".`i..o..........0...0...U..........!b&...y.aA.`.b
0c40: g.0...U.#..0...N"T ....n..........90...U...........0...U.%..0...
0c80: +.........+.......0...U.......0.......0v..+........j0h0$..+.....
0cc0: 0...http://ocsp.digicert.com0@..+.....0..4http://cacerts.digicer
0d00: t.com/DigiCertGlobalRootG2.crt0{..U...t0r07.5.3.1http://crl3.dig
0d40: icert.com/DigiCertGlobalRootG2.crl07.5.3.1http://crl4.digicert.c
0d80: om/DigiCertGlobalRootG2.crl0...U. ..0.0...g.....0...g.....0...+.
0dc0: ....7.......0...*.H.............3....c.M..An..:.. S....G.e..G_7.
0e00: ~.JAZ.a..B.....&J..:O..O..~W/l..RAV.P.tA..,y.m~..q1...X.x.N.....
0e40: NC..Y.aF..<..<aG@.....E.."..Y=B.X."wV.AS9..R.(...N....R....t>K.
0e80: ....r.{..l...=g.9q..nw....'..^...l..v.?...?..=.n/A,;s .-..%.5zy.
0ec0: [..7)A.T...........'w.....hN..^.
== Info: TLSv1.2 (IN), TLS handshake, Server key exchange (12):
<= Recv SSL data, 0000000365 bytes (0x0000016d)
0000: ...i...a./F.k...H..8...[h#..L..:.../....EZ.... ...Taj,elX....^$.
0040: ...?.J..Tv8(%.'.-."..........!.y3.S.u..........d2.W;.,Wv.....#..
0080: ?..]s...x..Z...".T....#z.|.D.YFgg...\.,.(&8.E...Z...!.r)."..\..?
00c0: <N....qtD..!........>q..ckx.1...@q...pn.........~v..;L...@VY.=.5
0100: ...f....[.\......@..@.W.......N...X.r1c.~......c..I..|L...Tq,...
0140: I...8......h.....J....\_.I;.....tH].........X
== Info: TLSv1.2 (IN), TLS handshake, Server finished (14):
<= Recv SSL data, 0000000004 bytes (0x00000004)
0000: ....
== Info: TLSv1.2 (OUT), TLS header, Certificate Status (22):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....f
== Info: TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
=> Send SSL data, 0000000102 bytes (0x00000066)
0000: ...ba........./.|I%E...V.....8..FR..d..w.g.....=..Z.............
0040: 4..'..l0.(&...#....M~-9$..i..l.v'C...v
== Info: TLSv1.2 (OUT), TLS header, Finished (20):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: .....
== Info: TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
=> Send SSL data, 0000000001 bytes (0x00000001)
0000: .
== Info: TLSv1.2 (OUT), TLS header, Certificate Status (22):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....(
== Info: TLSv1.2 (OUT), TLS handshake, Finished (20):
=> Send SSL data, 0000000016 bytes (0x00000010)
0000: ....}........[4.
== Info: TLSv1.2 (IN), TLS header, Finished (20):
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: .....
== Info: TLSv1.2 (IN), TLS header, Certificate Status (22):
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: ....(
== Info: TLSv1.2 (IN), TLS handshake, Finished (20):
<= Recv SSL data, 0000000016 bytes (0x00000010)
0000: .........@....|.
== Info: SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
== Info: ALPN, server accepted to use http/1.1
== Info: Server certificate:
== Info:  subject: C=US; ST=WA; L=Redmond; O=Microsoft Corporation; 
CN=eastasia.api.cognitive.microsoft.com
== Info:  start date: Jul 20 15:22:07 2023 GMT
== Info:  expire date: Jun 27 23:59:59 2024 GMT
== Info:  subjectAltName: host "eastasia.api.cognitive.microsoft.com" matched 
cert's "eastasia.api.cognitive.microsoft.com"
== Info:  issuer: C=US; O=Microsoft Corporation; CN=Microsoft Azure TLS Issuing 
CA 02
== Info:  SSL certificate verify ok.
== Info: TLSv1.2 (OUT), TLS header, Supplemental data (23):
=> Send SSL data, 0000000005 bytes (0x00000005)
0000: ....*
=> Send header, 0000000274 bytes (0x00000112)
0000: POST /sts/v1.0/issueToken HTTP/1.1
0024: Host: eastasia.api.cognitive.microsoft.com
0050: Accept: */*
005d: Transfer-Encoding: chunked
0079: Content-Length: 0
008c: Ocp-Apim-Subscription-Key: My-key
00c9: Content-Type: application/x-www-form-urlencoded
00fa: Expect: 100-continue
0110:
== Info: TLSv1.2 (IN), TLS header, Supplemental data (23):
<= Recv SSL data, 0000000005 bytes (0x00000005)
0000: ....h
== Info: Mark bundle as not supporting multiuse
<= Recv header, 0000000017 bytes (0x00000011)
0000: HTTP/1.1 200 OK
<= Recv header, 0000000021 bytes (0x00000015)
0000: Content-Length: 777
<= Recv header, 0000000031 bytes (0x0000001f)
0000: Content-Type: application/jwt
<= Recv header, 0000000034 bytes (0x00000022)
0000: x-envoy-upstream-service-time: 1
<= Recv header, 0000000055 bytes (0x00000037)
0000: apim-request-id: ef6c08b0-39fe-4650-86c1-4feced9572b5
<= Recv header, 0000000073 bytes (0x00000049)
0000: Strict-Transport-Security: max-age=31536000; includeSubDomains;
0040: preload
<= Recv header, 0000000033 bytes (0x00000021)
0000: x-content-type-options: nosniff
<= Recv header, 0000000024 bytes (0x00000018)
0000: x-ms-region: East Asia
<= Recv header, 0000000037 bytes (0x00000025)
0000: Date: Mon, 21 Aug 2023 10:06:39 GMT
<= Recv header, 0000000002 bytes (0x00000002)
0000:
<= Recv data, 0000000777 bytes (0x00000309)
0000: eyJ....My...Token
== Info: Connection #0 to host eastasia.api.cognitive.microsoft.com left intact
eyJ....My...Token
root@db4f56f11d6f:/#
```

CURL version

```bash
$ curl -V
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 
brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) 
libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.14
Release-Date: 2022-01-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps 
mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 
Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd
```

Operating System

Run in docker image Ubuntu 22.04, host on Ubuntu 20.04

```bash
$ uname -a
Linux db4f56f11d6f 5.15.0-60-generic #66~20.04.1-Ubuntu SMP Wed Jan 25 09:41:30 
UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy
```
-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to