Overview

The following set up will allow you to work on the Raft3 app in your local environment (http://localhost) by using a node.js proxy server to connect to the dev servers for authentication and services.

Note: This environment will not work until you have a valid Kerberos account and have been created as a Raft user.

Installation of Required Software 

Download and install node from here: http://nodejs.org/download/ (doc written using V0.10.16)

Checkout Raft3 code

Create a new project in PHPStorm (or your favorite IDE) and pull the code.

svn root: svn+ssh://svn.mit.edu/mitbi

project: php/trunk

You'll get more than just the front end app but this allows us to be consistent when merging

Create a local server directory

The app lives in the public directory (trunk/zend_framework/public/)

In this public directory you need to create a copy of the existing server directory. Call it local_server and configure it so svn will ignore it (we want this to remain locally on your machine only).

Certificate Installation

These certificates are used to proxy to the test server using your credentials.

  1. Go to Firefox/Preferences/Advanced/Encryption/View Certificates and click on your certificate and click the Backup button. In the Save Dialog box, save your certificate as a pks12 (.p12) file in your server directory (neatest if you save it in a cert subdirectory).
  2. Using your terminal, CD to the cert subdirectory (/zend_framework/public/local_server/certs).
  3. Create a .pem file: openssl pkcs12 -nodes -in yourcert.p12 -out yourcert.pem
  4. Now remove the password from your .pem file this way: openssl rsa -in yourcert.pem -out yourcertNoPassword.pem
  5. From the Authorities tab in FF, export and save the "MIT Certification Authority..." certification to a file name mitCA.pem in /zend_framework/public/local_server/certs folder.

Configure auth.json

Edit /zend_framework/public/local_server/auth_yours.json and rename this file to auth_me.json or whatever you like:

{
	"what_do_I_do_with_this_file": "Rename this file to auth_me.json or whatever you like then reference it on the command line with the '-a' parameter",
	"keyFile": ".pem file containing your cert with password removed",
	"certsFile": ".pem file containing your key",
	"caFile": "certs/mitCA.pem"
}

Install Required Node Module Dependencies

  1. Navigate to /zend_framework/public/local_server/
  2. Execute npm (node package manager) which will read the package.json file and install the listed dependencies. 
    1. npm install

Testing The Local Server

  1. Navigate to zend_framework/public/local_server
  2. Start the server via command: node bin/mitserv.js -a auth_me.json
  3. In a browser, navigate to http:/localhost:8080/app.html

Possible Issues

  • Issue:
    • Proxy starts but errors related to .pem files seen
  • Fix:
    • Make sure you did not mix up the key and cert files in your auth.json file.
  • Issue:
    • Proxy starts but no response is returned at all
  • Fix:
    • Make sure you have been added everywhere required to be a valid Raft user (Amon knows)
  • Issue:
    • Proxy starting but never returning
  • Fix:
    • Make sure you're connecting using either the MIT N or MIT SECURE N wireless network
  • Issue: 
  • Fix:
    • The Apache server needs to include the username
  • Issue:
    • Error: EBADF, Bad file descriptor './certs/hij1nx.pem'
  • Fix:
    • The certs are missing and/or misconfigured. See the section on installing certificates.
  • No labels