可以使用客户端证书来增强 SGD Gateway 的安全性,客户端证书会将访问限定在具有有效证书的用户内。
客户端证书是指安装在客户端设备上的浏览器中的 SSL 证书。有关如何安装客户端证书的详细信息,请参见所用浏览器的联机文档。
如果需要为新的客户端证书生成证书签名请求 (certificate signing request, CSR),请参见第 C.7.2 节 “如何为客户端证书生成 CSR”。
以下过程使用 keytool 应用程序。有关如何使用 keytool 应用程序的详细信息,请参见 JDK Tools and Utilities(JDK 工具和实用程序)文档。
在 SGD Gateway 主机上,以超级用户 (root) 身份登录。
停止 SGD Gateway。
# /opt/SUNWsgdg/bin/gateway stop
将 SGD Gateway 配置为使用客户端证书进行 HTTPS 客户端连接。
将 <needClientAuth>
条目添加到 /opt/SUNWsgdg/etc/gateway.xml
文件中,如下所示:
<service id="http-ssl-service" class="SSL">
<needClientAuth>true</needClientAuth>
<!-- Decrypts HTTPS traffic -->
<subService id="ssl-splitter">
<binding>*</binding>
</subService>
(可选)将客户端证书导入到 SGD Gateway 客户端密钥库中。
如果客户端证书是由受信任的证书颁发机构 (Certificate Authority, CA) 签名的,则无需执行此步骤。
按如下方式使用 keytool 命令:
# /opt/SUNWsgdg/java/default/bin/keytool -importcert \ -alias mycert -keystore /opt/SUNWsgdg/proxy/etc/keystore.client \ -file mycert.crt -storepass ‘cat /opt/SUNWsgdg/etc/password‘
在此示例中,客户端证书 mycert.crt
导入到 SGD Gateway 客户端密钥库中。客户端证书使用 mycert
别名存储。
启动 SGD Gateway。
# /opt/SUNWsgdg/bin/gateway start
要获取可用于 Gateway 的客户端证书,首先需要生成 CSR。随后将 CSR 发送给证书颁发机构 (Certificate Authority, CA) 进行签名。
以下过程介绍了如何使用 Gateway 主机上的 keytool 应用程序生成 CSR。但是,不一定要使用此过程中介绍的步骤。您可以改用自己喜欢的证书管理工具来生成 CSR。
在 SGD Gateway 主机上,以超级用户 (root) 身份登录。
生成自签名证书和相应的私钥。
按如下方式使用 keytool 命令:
# /opt/SUNWsgdg/java/default/bin/keytool -genkeypair -keyalg RSA \ -alias mycert -keystore keystore.mycert -storepass letmein
在此示例中,将创建自签名证书和私钥并将其存储在名为 keystore.mycert
的密钥库中。密钥对使用 mycert
别名存储。
为自签名证书生成 CSR。
按如下方式使用 keytool 命令:
# /opt/SUNWsgdg/java/default/bin/keytool -certreq \
-alias mycert -keystore keystore.mycert -storepass letmein \
-file /tmp/gateway-name
.csr
在此示例中,生成了 CSR 并将其存储在 /tmp/
文件中,其中 gateway-name
.csrgateway-name
是 Gateway 的名称。