Proxy Server 支持按照以下方法使用外部加密模块(如智能卡或令牌环):
PKCS #11
FIPS-140
激活 FIPS-140 加密标准之前,必须添加 PKCS #11 模块。
本节包含以下主题:
Proxy Server 支持公钥加密标准 (Public Key Cryptography Standard, PKCS) #11,该标准定义了在 SSL 和 PKCS #11 模块之间通信所使用的接口。PKCS #11 模块用于指向 SSL 硬件加速器的基于标准的连接。外部硬件加速器的已导入证书和密钥存储在 secmod.db 文件中,该文件在安装 PKCS #11 模块时生成。该文件位于 server-root/alias 目录中。
可使用 modutil 工具以 .jar 文件或对象文件形式安装 PKCS #11 模块。
确保关闭了所有服务器(包括 Administration Server)。
转至包含数据库的 server-root/alias 目录。
将 server-root/bin/proxy/admin/bin 添加到 PATH 中。
在 server-root /bin/proxy/admin/bin 中找到 modutil。
设置环境。
在 UNIX 上:setenv
LD_LIBRARY_PATH server-root/bin/proxy/lib:${LD_LIBRARY_PATH}
在 Windows 上,将以下内容添加到 PATH
LD_LIBRARY_PATH server-root/bin/proxy/bin
您会发现您计算机的 PATH 列在 server-root/proxy-admserv/start 下。
在终端窗口中,键入 modutil。
将列出各种选项。
执行所需的操作。
例如,要在 UNIX 中添加 PKCS #11 模块,请输入:
modutil -add(PKCS#11 文件的名称)-libfile(用于 PKCS #11 的 libfile)-nocertdb -dbdir(数据库目录)。
使用 pk12util 可以将证书和密钥从内部数据库导出,以及将其导入到内部或外部 PKCS #11 模块。您可以将证书和密钥始终导出到内部数据库中,但多数外部令牌不会允许您导出证书和密钥。默认情况下,pk12util 使用名为 cert8.db 和 key3.db 的证书数据库和密钥数据库。
转至包含数据库的 server-root/alias 目录。
将 server-root/bin/proxy/admin/bin 添加到 PATH 中。
在 server-root /bin/proxy/admin/bin 中找到 pk12util。
设置环境。
在 UNIX 上:
setenv LD_LIBRARY_PATH/ server-root/bin/proxy/lib:${LD_LIBRARY_PATH}
在 Windows 上,将以下内容添加到 PATH
LD_LIBRARY_PATH server-root/bin/proxy/bin
您可以在以下位置找到您计算机的 PATH:server-root/proxy-admserv/start。
在终端窗口中,键入 pk12util。
将列出各种选项。
执行所需的操作。
例如,在 UNIX 中键入
pk12util -o certpk12 -n Server-Cert [-d /server/alias] [-P https-test-host]
键入数据库密码。
键入 pkcs12 密码。
转至包含数据库的 server-root/alias 目录。
将 server-root/bin/proxy/admin/bin 添加到 PATH 中。
在 server-root /bin/proxy/admin/bin 中找到 pk12util。
设置环境。
例如:
在终端窗口中,键入 pk12util。
将列出各种选项。
执行所需的操作。
例如,在 UNIX 中输入:
pk12util -i pk12_sunspot [-d certdir][-h “nCipher”][-P https-jones.redplanet.com-jones-]
-P 必须跟在 -h 之后,且必须是最后一个参数。
键入正确的令牌名称,包括大写字母和引号之间的空格。
键入数据库密码。
键入 pkcs12 密码。
如果将服务器的证书安装到外部 PKCS #11 模块(如硬件加速器),服务器将无法使用该证书启动,除非对 server.xml 文件进行编辑,或按如下所述指定证书名。
服务器会始终尝试使用名为 Server-Cert 的证书启动。但是,外部 PKCS #11 模块中的证书在其标识符中包括模块的某个令牌名称。例如,名为 smartcard0 的外部智能卡读取器上安装的服务器证书应命名为 smartcard0:Server-Cert。
要使用安装在外部模块中的证书启动服务器,必须为在其上运行服务器的侦听套接字指定证书名称。
如果未在侦听套接字上启用安全性,将不会列出证书的信息。要为侦听套接字选择证书名称,首先必须确保已在该侦听套接字上启用了安全性。有关更多信息,请参见为侦听套接字启用安全性。
访问 Administration Server 或 Server Manager,然后单击 "Preferences" 选项卡。
单击 "Edit Listen Sockets" 链接。
单击要与证书关联的侦听套接字的链接。
从 "Server Certificate Name" 下拉式列表中为侦听套接字选择服务器证书,然后单击 "OK"。
该列表中包含了所有已安装的内部和外部证书。
但您也可以手动编辑 server.xml 文件,让服务器使用该服务器证书启动。将 SSLPARAMS 中的 servercertnickname 属性更改为:
$TOKENNAME:Server-Cert
要查找 $TOKENNAME 使用的值,请转至服务器的 "Security" 选项卡并选择 "Manage Certificates" 链接。当您登录到存储 Server-Cert 的外部模块时,$TOKENNAME:$NICKNAME 表单的列表中将显示其证书。
如果未创建信任数据库,当申请或安装外部 PKCS #11 模块的证书时,将会为您创建一个信任数据库。创建的默认数据库没有密码,且无法访问。外部模块将工作,但您不能申请和安装服务器证书。如果创建了没有密码的默认数据库,请使用 "Security" 选项卡上的 "Create Database" 页面设置密码。
通过 PKCS #11 API,您可以与执行加密操作的软件或硬件模块进行通信。在 Proxy Server 上安装了 PKCS #11 之后,可以配置服务器使其符合 FIPS-140。FIPS 表示联邦信息处理标准 (Federal Information Processing Standard)。这些库仅包含在 SSL 3.0 中。
按照 FIPS-140 中的说明安装该插件。
访问 Administration Server 或 Server Manager,然后单击 "Preferences" 选项卡。
单击 "Edit Listen Sockets" 链接。
对于安全侦听套接字,"Edit Listen Sockets" 页面将显示可用的安全性设置。
要使用 FIPS-140,请确保已在选定侦听套接字上启用了该安全性。有关更多信息,请参见为侦听套接字启用安全性。
从 "SSL Version 3" 下拉式列表中选择 "Enabled"(如果尚未选定)。
选择相应的 FIPS-140 加密算法套件,然后单击 "OK":