+import httplib
+import mechanize
+
+def make_cert_handler(key_file=None, cert_file=None):
+ if cert_file is None:
+ cert_file = key_file
+
+ class HTTPSCertConnection(httplib.HTTPSConnection):
+ def __init__(self, host):
+ httplib.HTTPSConnection.__init__(self, host,
+ key_file=key_file,
+ cert_file=cert_file)
+
+ class HTTPSCertHandler(mechanize.HTTPSHandler):
+ def https_open(self, req):
+ return self.do_open(HTTPSCertConnection, req)
+
+ return HTTPSCertHandler
+
+cj = mechanize.CookieJar()
+
+cert_handler = make_cert_handler("cert.pem")
+opener = mechanize.build_opener(mechanize.HTTPRedirectHandler, cert_handler, mechanize.HTTPCookieProcessor(cj))
+mechanize.install_opener(opener)
+
+b = mechanize.Browser()
+b.set_handle_robots(False)
+b.addheaders = [("Accept-Language", "en-us,en;q=0.5"),]
+b.open("https://jira.mit.edu/jira/secure/Dashboard.jsp://jira.mit.edu/jira/secure/Dashboard.jspa")
+b.follow_link(text="MIT Touchstone")