Клиентские сертификаты являются ответом. Большинство / Все браузеры импортируют эти клиентские сертификаты как PKCS # 12 (.p12, .pfk).
Можно преобразовать существующий сертификат x509 в файл PKCS # 12 с открытым ключом (.crt), закрытым ключом (.key) и сертификатом CA (.crt). Вы можете сделать это с OpenSSL, используя следующую команду:
openssl pkcs12 -export -out client.p12 -inkey client.key -in client.crt -certfile ca.crt
Если вы подписываете сертификаты самостоятельно, важно убедиться, что серийный номер сертификата отличается от других сертификатов. Если они совпадают, вы можете столкнуться с ошибками при попытке импортировать файл .p12 (так что следите за -set_serial в примерах openssl).
К сожалению, единственный кроссплатформенный способ сделать сертификаты мобильными / съемными - это использовать смарт-карту (используя PKCS # 11).
В Mac OS X Safari и Chrome получают доступ к своим сертификатам из цепочки для ключей. Вы можете создать собственную цепочку для ключей на USB-накопителе (Файл -> Новая цепочка для ключей). После создания цепочки для ключей вы можете просто перетащить файл .p12 в свою цепочку для ключей. Что приятно, так это то, что вы можете контролировать доступ к тому, какое приложение имеет доступ к сертификатам, и вы можете иметь блокировку самой цепочки для ключей после определенного периода бездействия.
С Safari это прекрасно работает. Если вы отключите флэш-накопитель, он прекратит отправку этого сертификата через пару секунд. Если вы подключите его обратно, он сразу же поднимет его. Если вы заблокируете сертификат с помощью «Keychain Access», он запросит пароль. Он не позволяет правильно извлечь флэш-накопитель во время использования, но через минуту Safari снимает блокировку.
Chrome привередлив. Он кэширует сертификат на несколько минут. Если вы заблокируете связку ключей, она продолжит использовать кэшированную версию. Если вы попытаетесь правильно отключить флэш-диск, он скажет вам, что Chrome использует его, пока вы не закроете его. Если вы подключите флэш-накопитель во время работы Chrome, он не поднимет его.
Похоже, что Safari - единственный браузер, который поддерживает это. Firefox и Opera имеют свои собственные хранилища ключей.
Если вы хотите спрятать свою пользовательскую цепочку для ключей на флэш-диске, вы можете создать невидимую папку с префиксом в виде точки (например, «./.keys»). При создании цепочки для ключей вы можете просмотреть невидимую папку в диалоговом окне, нажав Ctrl + Shift + ".".