Я бы сделал поддомен, который бы работал исключительно через SSL и отвечал за аутентификацию клиентских сертификатов. Удобно тем, что легко выполнить средствами nginx. А дальше можно произвести авторизацию на нём же, по примеру отсюда
cweiske.de/tagebuch/ssl-client-certificates.htm, и установить сессионную куку для родительского домена.
UPD: если есть желание
всю аутентификацию зарулить на поддомен, то ничего принципиально не меняется, только вместо 443-го порта ещё будет слушаться 80-й и соответственно php-обработчик будет смотреть на присутствие полей в окружении $_SERVER для выбора способа авторизации.