{"issue":{"created_at":"2011-06-29T00:04:48Z","state":"closed","updated_at":"2011-12-03T03:14:02Z","comments":5,"user":{"gravatar_id":"b6c1ebb35d0c41dfe0728dd0dc6ae5b1","id":124687,"url":"https://api.github.com/users/toolness","avatar_url":"https://secure.gravatar.com/avatar/b6c1ebb35d0c41dfe0728dd0dc6ae5b1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"toolness"},"body":"I'm working on a Python-based browserid auth mechanism, and realized that all the major built-in ways of doing HTTPS in Python--via `httplib`, `urllib`, and `urllib2`--offer no way to check the server's cert. This is terrible, and effectively means the communication occurs over HTTP.\r\n\r\nSome searches on google yield two particularly interesting links:\r\n\r\n* http://bugs.python.org/issue1114345\r\n* http://stackoverflow.com/questions/1087227/validate-ssl-certificates-with-python\r\n\r\nAnyhow, it seems doing HTTPS the right way in Python is nontrivial, so it'd be nice if we provided a bit of guidance here, so that folks don't accidentally introduce vulnerabilities into their apps.\r\n","assignee":{"gravatar_id":"5810c72f30b0ab202823d8c26460c39d","id":39411,"url":"https://api.github.com/users/lloyd","avatar_url":"https://secure.gravatar.com/avatar/5810c72f30b0ab202823d8c26460c39d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"lloyd"},"labels":[{"color":"64f623","name":"★","url":"https://api.github.com/repos/mozilla/browserid/labels/%E2%98%85"}],"id":1133987,"number":40,"pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"title":"Consider mentioning the dangers of using https in Python","closed_at":"2011-11-30T03:25:34Z","html_url":"https://github.com/mozilla/browserid/issues/40","url":"https://api.github.com/repos/mozilla/browserid/issues/40","milestone":{"created_at":"2011-11-30T02:51:18Z","state":"open","due_on":null,"closed_issues":9,"creator":{"gravatar_id":"e7591fc2ef5b6733035b570ae7942b47","id":18057,"url":"https://api.github.com/users/benadida","avatar_url":"https://secure.gravatar.com/avatar/e7591fc2ef5b6733035b570ae7942b47?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"benadida"},"number":20,"title":"Community TODO","description":"This milestone aggregates issues that are prime targets for community volunteers.","url":"https://api.github.com/repos/mozilla/browserid/milestones/20","open_issues":31}},"action":"created","comment":{"created_at":"2011-12-03T03:14:01Z","updated_at":"2011-12-03T03:14:01Z","user":{"gravatar_id":"ef049ef74c1c0323b925195e7b7cc9e7","id":959649,"url":"https://api.github.com/users/jbonacci","avatar_url":"https://secure.gravatar.com/avatar/ef049ef74c1c0323b925195e7b7cc9e7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jbonacci"},"body":"Catching up on older, closed issues with the Verified label.","id":2998779,"url":"https://api.github.com/repos/mozilla/browserid/issues/comments/2998779"}}