1. Run `./gencrt.sh` or if you have your own certifications, move them to the main directory, the name is ca.pem, server.pem, server.key, client.pem and client.key.

    The server.pem and client.pem was generated by the same ca.pem in gencrt.sh.

    Server side needs ca.pem(to verify client.pem), server.pem, server.key

    Client side needs ca.pem(to verify server.pem), client.pem, client.key

    If you have two ca.pem to generate server.pem and client.pem respectively, client1.pem is generate by ca1.pem and client1.key, server2.pem is generate by ca2.pem and server2.key:

    Client side needs ca2.pem, client1.pem, client1.key.

    Server side needs ca1.pem, server2.pem, server2.key.

    Rename ca2.pem client1.pem client1.key to ca.pem client.pem client.key.

    Use ca1.pem in openssl s_server -CAfile option.

2. Run `openssl s_server -CAfile ca.pem -cert server.pem -key server.key -verify 1 -tls1_2 -accept 443` in ./main directory to start server on your PC and wait for ESP8266 client to connect it.

3. Compile and download
    - run `make menuconfig`
        - Modify SSID and PASSWORD under menu "Example Configuration".
        Make sure that the computer and ESP8266 are in the same local area network.
        - Modify TARGET_NAME and TARGET_PORT under menu "Example Configuration".
    - run `make flash monitor`

**ATTENTION**

**1. Make sure the free heap size larger than 30K.**

**2. Make sure the private key length larger than 2048.**

**3. Make sure the fragment size range is between 2048 and 16384.**