Connect to WPI Wireless Using a Raspberry Pi

How to connect your Raspberry Pi to the WPI Wireless network.

Requirements

Note

This document is designed for a Raspberry Pi 3 and models which have a WiFi adapter built-in.  It may work for devices with a USB external WiFi adapter - though the interface wlan0 may be different on that device.

The Raspberry Pi must be operating properly to configure wireless. If the following issues are present, do not proceed with configuration:

  1. Power: If a rainbow-colored cube or lightning bolt appears in the corner of your screen, the power supply is incorrect.
  2. Temperature: If a red cube appears, the power supply is overheated.
  3. Ensure your Raspberry Pi is running the latest version of Raspbian.  Previous versions or other flavors of the Raspberry Pi operating system may not be supported by this configuration.  In a terminal, run uname -a.  This document was produced using Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux


Instructions

Prepare the Raspberry Pi

  1. If using a Graphical User Interface (GUI), open a terminal. This is a blue and gray icon in the top left.
  2. If using a text only interface, simply login.
  3. If you have not already set a custom password, run passwd to set a new password for the device.
    • The default username is pi
    • The default password is raspberry
  4. Ensure the date is set correctly by running date.
    • If the either the time or date is not correct, run the following command replacing the fields as necessary: 
      pi@raspberry:~$ sudo date -s "DAY MONTH YEAR HOUR:MINUTE:SECONDS"
  5. Run the command ip a. Under the wlan0 subhead, take note the MAC Address. This will be next to the text link/ether, and of the format ab:cd:ef:gh:ij:kl:
    pi@raspberry:~$ ip a
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0:  mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
        link/ether b8:27:eb:3c:fa:d7 brd ff:ff:ff:ff:ff:ff
    3: wlan0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether b8:27:eb:69:af:82 brd ff:ff:ff:ff:ff:ff
        inet 130.215.168.210/21 brd 130.215.175.255 scope global wlan0
           valid_lft forever preferred_lft forever
        inet6 fe80::cc7a:d2bb:8149:45a7/64 scope link 
           valid_lft forever preferred_lft forever


Retrieve the Secure Certificates

  1. If you are running in a text-only interface, you will need to register your device and retrieve the certificates from a separate computer and copy them to your Raspberry Pi.  Please ensure that you have renamed them prior to copying them to /home/pi/Downloads.
  2. In a GUI, on the top right, click on the networking icon and connect to WPI-Open.
  3. Open your browser. This is a globe icon in the top left.
  4. Navigate to netreg.wpi.edu and click Register New Device. Enter the MAC address found in the previous step and click Register Device after accepting the Acceptable Use Policy.
  5.  Navigate to w.wpi.edu. Click Setup My WPI WiFi. Follow the on-screen instructions until you are presented the option to download a file. 
  6. Click the Show all operating systems link
  7. Click Other Operating Systems 
  8. Click Step 1: Install The CA Certificate. 
    • When saving the file, rename CA-{Random Hex Number}.cer to CA-WPINetOps.cer
  9. Click Step 2: Install Your Certificate
    • When saving the file, rename certificate.p12 to WPI-Wireless-TEMP.p12


Preparing the Secure Certificates

  1. If you have retrieved your certificates from a separate computer, please ensure that you have renamed them prior to copying them to /home/pi/Downloads.
  2. Either in your text-only interface or GUI Terminal, execute the following commands:
    pi@raspberry:~$ sudo mkdir -p /etc/pki/tls/certs
    pi@raspberry:~$ sudo mv /home/pi/Downloads/CA-WPINetOps.cer /etc/pki/tls/certs/CA-WPINetOps.cer
    pi@raspberry:~$ sudo mv /home/pi/Downloads/WPI-Wireless-TEMP.p12 /etc/pki/tls/certs/WPI-Wireless-TEMP.p12
    pi@raspberry:~$ sudo chown root:root /etc/pki/tls/certs/*
    pi@raspberry:~$ sudo chmod 600 /etc/pki/tls/certs/*
  3. To protect the security of your WPI Credentials, we will re-encrypt your certificate. In your terminal, execute the following commands:
    pi@raspberry:~$ cd /etc/pki/tls/certs
    pi@raspberry:~$ sudo openssl pkcs12 -in WPI-Wireless-TEMP.p12 -out temp.pem -passout pass:TEMP
    pi@raspberry:~$ sudo openssl pkcs12 -export -in temp.pem -out WPI-Wireless-certificate.p12 -passin pass:TEMP
    • When prompted, enter your WPI password as the Import password
    • When prompted, enter a new password as the Export password

    Note:

    It is absolutely critical that you enter a different password than your WPI password when prompted. Not doing so runs the risk of exposing your credentials to others.
  4. Delete all unused certificates with the following commands:
    pi@raspberry:~$ cd /etc/pki/tls/certs
    pi@raspberry:~$ sudo rm WPI-Wireless-TEMP.p12 temp.pem

Configuring the Raspberry Pi for WPI-Wireless

  1. We will now configure wpa_supplicant to connect to the WPI Network. In your terminal, execute
    sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
  2. Delete all other contents between the curly braces ( { } ) after `network=` in the file, and enter the following:
    network={
                ssid="WPI-Wireless"
                key_mgmt=WPA-EAP
                proto=WPA2
                pairwise=CCMP
                group=CCMP
                eap=TLS
                identity="YOUR_WPI_EMAIL_ADDRESS"
                ca_cert="/etc/pki/tls/certs/CA-WPINetOps.cer"
                private_key="/etc/pki/tls/certs/WPI-Wireless-certificate.p12"
                private_key_passwd="YOUR_NEW_PASSWORD"
        }
  3. Press CTRL-X, then y to confirm, and then enter to confirm again.
  4. Reboot the Raspberry Pi. The command is sudo reboot
  5. When your Raspberry Pi finishes rebooting, you should be connected to WPI-Wireless.

Troubleshooting

  • If you are still not connected, in a terminal run wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 to check for any errors. Correct the errors, and reboot the Raspberry Pi again.
  • If your issues persist, please contact the WPI Service Desk with the `Request Help` link on the top right of this page
WPI Info
What is your Affiliation with WPI?

Include details such as which device(s), your location (on or off campus), how long the issue has been ocurring.