客户证书是答案。大多数/所有浏览器都将这些客户端证书导入为PKCS#12(.p12,.pfk)。
您可以使用公钥(.crt),私钥(.key)和CA证书(.crt)将现有的x509证书转换为PKCS#12文件。您可以使用下面的命令与OpenSSL的做到这一点:
openssl pkcs12 -export -out client.p12 -inkey client.key -in client.crt -certfile ca.crt
如果自签名证书,它以确保证书的序列比其他证书的不同是很重要的。如果它们相同,则可能会尝试导入.p12文件时遇到错误(因此请注意openssl示例中的-set_serial)。
不幸的是,证书移动/可移动唯一的跨平台方式是使用智能卡(使用PKCS#11)。
在Mac OS X上,Safari和Chrome从钥匙串中访问其证书。您实际上可以在USB闪存驱动器上创建自定义钥匙串(文件 - >新钥匙串)。创建钥匙串后,您只需将.p12文件拖入您的钥匙串即可。有关这方面的好处是,您可以控制对访问证书的应用程序的访问权限,并且您可以在发生一定的不活动状态后锁定钥匙串本身。
用Safari浏览器可以很好地工作。如果拔下闪存驱动器,它会在几秒钟后停止发送该证书。如果你重新插入它,它会马上拿起它。如果您使用“钥匙串访问”锁定证书,它将要求输入密码。它可以防止您在使用过程中正确弹出闪存驱动器,但一分钟后Safari释放它的锁定。
铬是finicky。它将证书缓存几分钟。如果锁定钥匙串,它将继续使用缓存版本。如果您尝试正确卸载闪存驱动器,它会告诉您Chrome正在使用它,直到您关闭它。如果您在Chrome运行时插入闪存驱动器,则无法启动。
因此,看来Safari是唯一支持此功能的浏览器。 Firefox和Opera都有自己的密钥存储区。
如果你想隐藏你的闪存驱动器上的自定义钥匙串,你可以创建一个不可见的文件夹前加一段时间(如“./.keys”)。创建钥匙串时,您可以通过按Command + Shift +“。”查看对话窗口中的不可见文件夹。
这是可能的,但有时挑剔。 Google提供“SSL客户端证书”。 –
我将如何使证书便携/可移动(存储在USB棒上)? – Luke
通常,证书将安装到特定的浏览器配置文件中。脱机证书功能必须由浏览器支持。或者,您可以使用Firefox的“便携式”安装,或者将整个浏览器及其所有配置文件信息(包括客户端证书)存储在USB存储棒中的东西。 –