I was wondering if there currently exists a Content Management System that supports PKI and client certificates for website authentication instead of username/passwords. If not, what's a good place to start on developing a site that uses this authentication scheme? Is it possible with Python and Django?
People don't do that often in practice, because client certificates work only if you can arrange for clients to have certificates, basically meaning that you must manage your own PKI. Software for running your own PKI is available (e.g. EJBCA), but PKI management requires strict adherence to clearly defined procedures, which will take you time; the long-term cost of a custom PKI is very often underestimated (that is, if you want to do it properly).
Client certificates will also inconvenience users, because they won't easily (or at all) transfer their certificates to their tablet or smartphone or even alternate laptop, the way they do with passwords. None of this is really blocking, but it explains the rarity of client certificate deployment.