Setup Apple TV for Charles Proxy (HTTP Proxy)

Charles Proxy enables the user to view HTTP, HTTPS, and HTTP/2 and enabled TCP port traffic accessed from, to, or via the local computer. This guide will help to proxy HTTP traffic from your Apple TV to Charles Proxy.

💡
NOTE: This guide will erase the Apple TV. All the content and settings will be deleted.

1. Prerequisites

  • Apple Configurator 2 to get the device ready to install the profile.
  • Charles Proxy
  • Connect Apple TV with mac using Xcode where you have installed Apple Configurator 2.

2. Supervise Apple TV

  • Open Apple Configurator and select the Apple TV you want to setup with Charles Proxy.
  • From the menu select "Action" > "Prepare"

  • Select Prepare with: "Manual Configuration" and select the checkboxes for "Supervise devices" and "Allow devices to pair with other computers", and uncheck all others. Click the Next button.
  • In the next screen, select "Do not enroll in MDM" and click the Next button.
  • Now enter your information on the Create an Organization, you will need your Apple ID for this step
  • Enter organization information in this step. Only a name is required.
  • Now select "Generate a new supervision identity" and click Next.
  • Keep all steps selected in "Setup Assistant" and click Prepare.
  • After selecting Prepare you may be asked to enter your macOS local username/password to make changes. Enter your macOS username/password and select "Update Settings".

  • Now, you will see a popup informing you that the device will be erased. Click Erase to proceed.

  • Now Apple Configurator will start preparing your device. Once it finishes check your Apple TV is shown in the "Supervised" tab and "All Devices" tab as well.
  • You may need to re-paired the Apple TV if it is not visible in Apple Configurator.

3. Export and Trust Charles Root Certificate

  • Now, we have to set export the Charles Root Certificate and make it trustable otherwise Apple Configurator 2 may say "This root certificate is not trusted".
  • Export the Charles Root Certificate as .cer. In the Charles Proxy menu, select "Help" > "SSL Proxying" > "Save Charles Root Certificate..."
  • Make sure to save this certificate as .cer.
  • Now double-click on the exported certificate to add it to your login Keychain.
  • You can see the keychain says that "This root certificate is not trusted"
  • To make it a trusted certificate, right-click on the certificate and then select "Get information".
  • In the "Trust" section > "When using this certificate", select "Always Trust".
  • Now keychain will show this as a trusted certificate.

4. Create and Configure Profile

  • In the Apple Configurator menu, select "File" > "New Profile"
  • Give your profile a name and a unique identifier (if not pre-filled).
  • Now, select Wi-Fi on the left and click Configure.
    • Enter your Wi-Fi SSID
    • In Proxy Setup, select Manual
    • Enter the IP address of the machine running Charles Proxy and port 8888 (default port for Charles Proxy)
    • Select Wi-Fi security type and enter the Wi-Fi password
  • Select the "Certificates" on the left and click Configure.
  • This brings up a dialog to select the certificate. We need to select "Charles Root Certificate" which we have exported in Step 3.
  • Save this profile. You can edit the profile in the future if you want to make any changes (like Wi-Fi Name, Password, Charles machine IP Address or Charles Root Certificates, etc.)

5. Install the Profile

  • In Apple Configurator, select your Apple TV and Click on the "Add" button in the top bar
  • Select the "Profiles" option
  • Select the save profile from the last step
  • This will install the profile on your Apple TV.
  • Now, on your Apple TV, you will see a new screen prompting you to install a profile. Select "Install".
  • It will present a warning about "Unmanaged Root Certificate", "Network Monitoring" and "Unsigned Profile". Select "Install".
  • Select "Install" again on the next screen.
  • Now, on your Apple TV, open the Settings app and navigate to "General" > "About" > "Certificate Trust Settings"
  • You will see the "Charles Proxy CA" certificate here. Which is marked as "Not Trusted." Select this certificate.
  • You will see a warning about "Root Certificate". Select "Continue".
  • Now, you can see the "Charles Proxy CA" certificate marked as "Trusted".
  • Make sure your Apple TV is now connected to Wi-Fi and shows proxy details as well.
  • In the Charles Proxy, the first time you will receive a popup for a connection request from your Apple TV. Allow the connection from your Apple TV. (If not restart your Apple TV and Charles Proxy)
  • Now Charles Proxy will start showing all your network requests from Apple TV. You can utilize all Charles Proxy feature now.


Discussion

Read Community Guidelines
You've successfully subscribed to Developer Insider
Great! Next, complete checkout for full access to Developer Insider
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.