通常,通过以安全模式安装 SGD 来配置与 SGD 服务器的安全连接。安全模式是安装 SGD 的默认方法,并且会自动配置安全连接,如第 1.5.3 节 “启用安全连接(自动配置)”中所述。
也可以安装 SGD 但不配置安全连接。这称为以非安全模式安装。
以安全模式安装 SGD 时,将保护以下连接的安全:
AIP 连接。通过在 SGD 服务器上安装 SSL 证书并启用 SGD 安全服务来保证 AIP 连接安全。SGD 安全服务允许 SGD 使用传输层安全 (Transport Layer Security, TLS) 或安全套接字层 (Secure Sockets Layer, SSL) 提供与 SGD 服务器的安全连接。
如果在安装期间未指定证书详细信息,则会自动创建并安装自签名 SSL 证书。请将自签名 SSL 证书仅用于测试。
HTTP 连接。通过在 SGD Web 服务器上启用 HTTPS 连接保护 HTTP 连接的安全。在 SGD 服务器或 SGD Web 服务器启动时使用 --https
参数可启用 HTTPS 连接。
SGD Web 服务器预配置为 HTTPS Web 服务器,并使用与 SGD 服务器相同的 SSL 证书。
如果在 SGD 服务器上启用了 HTTPS 连接,则必须为阵列中的每个 SGD Web 服务器启用 HTTPS 连接。不得在同一个 SGD 阵列中混用 HTTP 和 HTTPS Web 服务器,并且阵列中的每个 SGD Web 服务器必须使用相同的 HTTPS 端口。
启用了安全连接之后,请确保用户在其客户端配置文件中有登录 URL 的 HTTPS URL。请参见第 6.2 节 “客户端配置文件”。
对于已经以安全模式安装的 SGD 服务器,以后可以使用手动配置来重新配置安全连接。请参见第 1.5.4 节 “启用安全连接(手动配置)”。
以非安全模式安装 SGD 时,不保护与 SGD Web 服务器的 HTTP 连接的安全。与 SGD 服务器的初始 AIP 连接是安全的,但在用户登录以后,AIP 连接会降级为标准连接。
对于已经以非安全模式安装的 SGD 服务器,以后可以使用自动配置或手动配置来启用安全连接。自动配置是最容易使用的方法,请参见第 1.5.3 节 “启用安全连接(自动配置)”。
本节包括以下主题:
SSL 证书是一种经过编码的文件,安全服务(如 Web 服务器)使用该文件向客户端证明身份。启用安全连接时,SGD 服务器将需要 SSL 证书。
SGD Web 服务器预配置为使用与 SGD 服务器相同的 SSL 证书。这是在 Apache 配置文件 /opt/tarantella/webserver/apache/
中配置的。如果需要,可以为 SGD Web 服务器使用单独的 SSL 证书。
apache-version
/conf/httpd.conf
SGD 支持保密性增强的电子邮件 (Privacy Enhanced Mail, PEM) Base-64 编码 X.509 证书。这些证书具有以下结构:
-----BEGIN CERTIFICATE-----
...certificate
...
-----END CERTIFICATE-----
SGD 支持服务器 SSL 证书的拥有者替代名称 (Subject Alternative Name, subjectAltName
) 扩展名。这将允许多个 DNS 名称与一个证书关联。如果在 SSL 证书中有 subjectAltName
字段,则将忽略 subject
字段,仅使用 subjectAltName
。如果任何拥有者替代名称与要连接到的 SGD 服务器名称匹配,则 SGD 客户端将接受 SSL 证书。
服务器 SSL 证书由证书颁发机构 (Certificate Authority, CA) 颁发。CA 是受信任的第三方,使用 CA 证书(或根证书)对服务器 SSL 证书进行数字签名。
默认情况下,SGD 包括了对若干 CA 证书的支持。/opt/tarantella/etc/data/cacerts.txt
文件中包含 SGD 所支持的所有 CA 证书的 X.500 标识名 (Distinguished Name, DN) 和 MD5 签名。
如果需要创建一个证书签名请求 (certificate signing request, CSR) 以供 CA 进行签名,请参见第 1.5.1.4 节 “如何生成证书签名请求”。
可以使用由不支持的 CA 签名的服务器 SSL 证书。但是,默认情况下,系统将提示所有用户接受或拒绝 SGD 无法验证的证书。这是一个潜在的安全风险。有关更多详细信息,请参见第 1.5.5 节 “安全连接和安全警告”。
SGD 支持使用证书链。使用证书链时,中间 CA 将使用由另一个 CA 颁发的 CA 证书对 SSL 证书进行签名。
如果服务器 SSL 证书是由不支持的 CA(或中间 CA)进行签名的,则必须安装 CA 证书或证书链。
SGD 支持针对测试目的创建自签名服务器 SSL 证书,例如,在生成 SSL 证书之前等待完成注册要求期间。自签名证书的有效期为 365 天。
请仅在测试环境中使用自签名 SSL 证书,因为自签名 SSL 证书不是真正安全的证书。虽然可以使用自签名 SSL 证书向用户提供安全连接,但不能保证用户连接到的服务器是真实的服务器。
可以使用以下命令创建自签名 SSL 证书:
tarantella security selfsign-允许您对使用 tarantella security certrequest 命令生成的 CSR 进行自签名
tarantella security enable-允许您自动配置安全的 SGD 服务器并安装服务器 SSL 证书
可以使用最初为其他产品(如 Web 服务器)获取的 SSL 证书。为此,您必须拥有该证书的私钥。如果私钥已被使用 SSLeay 或 OpenSSL 证书库的产品加密,则可通过使用 tarantella security decryptkey 命令将其解密来获取私钥。如果您没有私钥,则必须获取一个新的服务器 SSL 证书。
在 SGD 主机上,以超级用户 (root) 身份登录。
生成 CSR。
使用 tarantella security certrequest 命令可生成 CSR。
SGD 支持服务器 SSL 证书的拥有者替代名称 (Subject Alternative Name, subjectAltName
) 扩展名。这将允许多个 DNS 名称与一个 SSL 证书关联。有关详细信息,请参见第 1.2 节 “DNS 名称”。
SGD 支持将 *
通配符用于域名的第一部分,例如 *.example.com
。
生成 CSR 时,还会创建公钥和私钥对。
在 SGD 服务器上,CSR 存储在 /opt/tarantella/var/tsp/csr.pem
文件中,私钥存储在 /opt/tarantella/var/tsp/key.pending.pem
文件中。
如果要替换服务器 SSL 证书(例如,因为它将要过期),则可在不影响当前证书的情况下生成 CSR。
在以下示例中,为 SGD 服务器 boston.example.com
生成了一个 CSR。此服务器还有一个外部 DNS 名称 www.example.com
,因此将此名称添加为拥有者替代名称。
#tarantella security certrequest \
--country US --state Massachusetts --orgname "Example Com"
The certificate's common name (CN) will be: boston.example.com This hostname is included in the Certificate Signing Request (CSR) and corresponds to the name of the server that users will connect to. - If DNS names are used to connect to the server, the hostname above MUST be a fully qualified DNS name. - If clients are required to connect to the server using an IP address, the hostname above should be the IP address. A DNS record for this IP address SHOULD NOT exist. For clients to accept the certificate once it's installed, a DNS lookup of the hostname followed by a reverse lookup of the result must return the original hostname. The hostname to be used in the certificate request is boston.example.com. Do you want to use this hostname? [yes]y
Do you want to add any additional hostnames? [no]y
Type in the subject alternative names for the certificate, one per line. Enter a blank line to finish. subjectAltName:www.example.com
subjectAltName: 2048 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus ..++++++ ...........................................................++++++ e is 65537 (0x10001) -------------------------------------------------------------------------- Certificate Signing Request (CSR): Summary -------------------------------------------------------------------------- Subject: C=US ST=Massachusetts O=Example Com CN=boston.example.com Subject Alternative Names: DNS:boston.example.com, DNS:www.example.com The information above will be contained in the CSR. Create CSR now? [yes]y
Send the following Certificate Signing Request (CSR) to a Certificate Authority, such as VeriSign (www.verisign.com). Check with your CA that you're providing all the information they need. ------CUT HERE------ -----BEGIN CERTIFICATE REQUEST----- NhY2h1c2V0MIIB5TCCAU4CAQAwXDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3 dpZS5VdHMxGTAXBgNVBAoTEEluZGlnbyBJbnN1cmFuY2UxGjAYBgNVBAMTEXJhZG sd+SmX7zz6Sy5TdW4uQ09NMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbWM sMqBs7gQw8Q1Gk3NAypySP6aRiEItLrfSlZ8XgKXmjmlLtb03V9JonjLfhH3fBzk gnOG6EpTmJM4y3OOpEXZZ2yhtWgsQsXyLWbfTLWZPfHLPI5ztEEJ7Z0G6dpeG0xg wODA2ApAp6sIrmBqbZG2Aaf5poB+FQ4lsmQIDAQABoEkwRwYJKoZIhvcNAQkOMTo N1cmFuBgNVHREELzAtghFyYWRnaWUuVUsuU3VuLkNPTYIYd3d3LmluZGlnby1pbn V617E7oFKY2UuY29tMA0GCSqGSIb3DQEBBQUAA4GBAMsOieZzrGHN7fkW6LmYNHW sW1tmHeFjekpiUiTLYE+KUZXKKCH9f1eo+nfwFdi9VOomIdga4uehl+4acqqiGEe W4iIb9BC9b/V1pA/lGJwWN0aDDB3/d47UGAlli+spW37chg53Fp7eP2xIYWfJR6O 35eSPZm42dyp -----END CERTIFICATE REQUEST----- ------CUT HERE------ When you receive your certificate, use 'tarantella security certuse' to install it.
将 CSR 发送到 CA。
有关 SGD 默认支持的 CA 的详细信息,请参见第 1.5.1.1 节 “支持的证书颁发机构”。
复制作为命令行输出的 CSR,或者使用存储在 SGD 服务器上的 /opt/tarantella/var/tsp/csr.pem
文件中的 CSR 副本。
使用以下过程可以替换 SGD 服务器的服务器 SSL 证书(例如,因为原始 SSL 证书将要过期)。
(可选)生成 CSR 并将其发送给 CA。
安装服务器 SSL 证书。
(可选)安装 CA 证书。
仅当服务器 SSL 证书由不受支持的 CA(或中间 CA)签名时才执行此步骤,请参见第 1.5.1.1 节 “支持的证书颁发机构”。
必须安装的证书如下:
不支持的 CA。导入 CA 证书或根证书,请参见第 1.5.4.2 节 “如何安装不受支持的 CA 的 CA 证书”。
中间 CA。导入 CA 证书链,请参见第 1.5.4.3 节 “如何安装 CA 证书链”。
重新启动 SGD 服务器和 SGD Web 服务器。
必须重新启动 SGD 服务器以确保新的服务器 SSL 证书用于安全链接。
确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。
使用以下命令:
# tarantella restart
与 SGD 服务器的 AIP 连接是在 TCP 端口 3144 和 5307 上建立的。如果无法在防火墙中打开所需的端口,则可通过单个端口(通常为端口 443)为所有 SGD 通信定向。为此,可以使用以下方法之一:
SGD Gateway-有关详细信息,请参见第 1.5.2.1 节 “SGD Gateway”
防火墙转发-有关详细信息,请参见第 1.5.2.2 节 “使用防火墙转发”
SGD Gateway 是防火墙穿越的最佳解决方案,具有诸如负载平衡的 HTTP 连接之类的其他优势。
SGD Gateway 是可选 SGD 组件。它是一个代理服务器,可以部署在隔离区 (demilitarized zone, DMZ) 中的某个 SGD 阵列之前,并支持将 SGD 阵列放在内部网络上。此外,在与阵列中的 SGD 服务器建立连接之前,可以先在 DMZ 中对所有连接进行验证。
有关如何安装、配置和使用 SGD Gateway 的说明,请参见《Oracle Secure Global Desktop Gateway 发行版 4.7 管理指南》。
如果不使用 SGD Gateway,则可使用防火墙转发使用户可以通过单个端口访问 SGD。使用防火墙转发时,要将 SGD 服务器配置为侦听端口 443。然后,SGD 服务器将不是 AIP 通信的所有通信转发到 SGD Web 服务器。
如果将 SGD 配置为进行防火墙转发,则无法使用依赖于客户端设备 IP 地址过滤的任何 SGD 功能。也就是说,无法使用以下功能:
SGD Gateway-有关详细信息,请参见第 1.5.2.1 节 “SGD Gateway”
多个外部 DNS 名称-有关详细信息,请参见第 1.2.1 节 “配置外部 DNS 名称”
多个阵列路由-有关详细信息,请参见第 1.3.4 节 “配置服务器端代理服务器”
连接定义-有关详细信息,请参见第 1.6.4 节 “使用连接定义”
使用防火墙转发时,可以配置单个外部 DNS 名称(例如 *:www.example.com
),然后使用拆分 DNS,使客户端能够将该名称解析为不同的 IP 地址(具体取决于这些 IP 地址是在防火墙内部还是外部)。
tarantella security enable 命令可以快速配置和启用安全连接。仅当以下两个条件都成立时才能使用此命令:
SGD 安装是使用标准连接的全新安装。且从未尝试过配置 SGD 安全连接。
该 SGD 服务器未与阵列中的其他 SGD 服务器连接。
如果不符合这些条件,tarantella security enable 命令将失败,必须通过手动配置来启用安全性。请参见第 1.5.4 节 “启用安全连接(手动配置)”。
tarantella security enable 命令执行以下配置:
安装指定的服务器 SSL 证书。
启用与 SGD Web 服务器的 HTTPS 连接。
(可选)配置 SGD 服务器以进行防火墙转发。
启用 SGD 安全服务。
重新启动 SGD 服务器和 SGD Web 服务器。
要安装 SSL 证书,必须已经拥有该证书及私钥。如果需要提交 CSR 以供 CA 进行签名,请参见第 1.5.1.4 节 “如何生成证书签名请求”。
如果不指定要安装的服务器 SSL 证书,tarantella security enable 命令将创建并安装一个自签名 SSL 证书。如果希望以后再安装服务器 SSL 证书,请使用 tarantella security disable 命令将安全性设置恢复为其之前的状态。然后,可以再次运行 tarantella security enable 命令并指定服务器 SSL 证书。
默认情况下,tarantella security enable 命令会配置 SGD 服务器以进行防火墙转发。如果要启用安全性但不进行防火墙转发,请使用 --firewalltraversal off
选项。可以在以后启用防火墙转发,方法是执行以下操作之一:
使用 tarantella security disable 命令将安全性设置恢复为其之前的状态。然后,使用 tarantella security enable 配置 SGD 服务器以进行防火墙转发。
手动启用防火墙转发。有关如何执行此操作的详细信息,请参见第 1.5.4.4 节 “如何配置防火墙转发”。
配置了防火墙转发的 SGD 服务器不能与 SGD Gateway 一起使用。
在开始之前,请确保您可以访问服务器 SSL 证书,以及私钥和 CA 证书(如果需要)。证书必须采用 PEM 格式。
确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。
确保 SGD 服务器正在运行。使用 tarantella status 命令可以显示 SGD 服务器的当前状态。
在 SGD 主机上,以超级用户 (root) 身份登录。
安装服务器 SSL 证书并启用 SGD 安全服务。
使用 tarantella security enable 命令安装服务器 SSL 证书并启用 SGD 安全服务。
如果使用 tarantella security certrequest 命令生成 CSR,则可省略 --keyfile
选项。将使用存储在 /opt/tarantella/var/tsp/key.pending.pem
文件中的密钥。在安装服务器 SSL 证书时,会将私钥移到 /opt/tarantella/var/tsp/key.pem
文件中。
如果同时使用 --certfile
选项和 --keyfile
选项,SGD 将创建指向 SGD 服务器上 /opt/tarantella/var/tsp
目录中 SSL 证书文件和密钥文件的符号链接。在运行此命令之后,请勿删除或移动 SSL 证书文件或密钥文件。
如果不指定要安装的服务器 SSL 证书,tarantella security enable 命令将生成一个 CSR,然后创建并安装一个自签名 SSL 证书。请将自签名 SSL 证书仅用于测试。
默认情况下,SGD 支持许多 CA。仅当服务器 SSL 证书由不受支持的 CA(或中间 CA)签名时才使用 --rootfile
选项。有关详细信息,请参见第 1.5.1.1 节 “支持的证书颁发机构”。
如果服务器 SSL 证书是由中间 CA 签名的,请将 CA 证书链中的所有证书组合到一个文件中。证书必须采用 PEM 格式。用于对服务器 SSL 证书进行签名的 CA 证书必须首先出现,例如:
-----BEGIN CERTIFICATE----- ...Intermediate CA's certificate
... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ...CA root certificate
... -----END CERTIFICATE-----
如果指定指向证书或密钥文件的路径,则必须指定该文件的全路径。ttasys
用户必须能够读取此路径。
如果使用 SGD Gateway,则必须使用 --firewalltraversal off
选项来启用没有防火墙转发的安全性。配置了防火墙转发的 SGD 服务器不能与 SGD Gateway 一起使用。
CSR、SSL 证书、私钥和 CA 证书存储在 SGD 服务器上的 /opt/tarantella/var/tsp
目录中。
如果服务器 SSL 证书是由支持的 CA 签名的,并且使用了 tarantella security certrequest 命令来生成 CSR,请使用以下命令:
# tarantella security enable [ --firewalltraversal off ]\
--certfile certificate-path
如果服务器 SSL 证书是由支持的 CA 签名的,但没有使用 tarantella security certrequest 命令来生成 CSR,请使用以下命令:
# tarantella security enable [ --firewalltraversal off ]\ --certfilecertificate-path
--keyfilekey-path
如果服务器 SSL 证书是由不受支持的 CA 或中间 CA 签名的,请使用以下命令:
# tarantella security enable [ --firewalltraversal off ]\ --certfilecertificate-path
[--keyfilekey-path
] \ --rootfileCA-certificate-path
要使用自签名 SSL 证书启用 SGD 安全服务,请使用以下命令:
# tarantella security enable [ --firewalltraversal off ]
使用手动配置启用安全连接需要执行以下步骤:
(可选)生成证书签名请求 (Certificate Signing Request, CSR) 并将其发送给 CA。
如果获取服务器 SSL 证书但不使用 tarantella security certrequest 命令生成 CSR,则此步骤是可选步骤。
如果已经拥有其他产品(如 Web 服务器)的 SSL 证书,则也许可以使用该证书。请参见第 1.5.1.3 节 “使用为其他产品获取的 SSL 证书”。
为阵列中的每个 SGD 服务器安装 SSL 证书。
要使用安全连接,SGD 服务器必须提供 SSL 证书向 SGD 客户端证明自己的身份。请参见第 1.5.4.1 节 “如何安装服务器 SSL 证书”。
(可选)安装 CA 证书。
仅当服务器 SSL 证书由不受支持的 CA(或中间 CA)签名时才执行此步骤,请参见第 1.5.1.1 节 “支持的证书颁发机构”。
必须安装的证书如下:
不支持的 CA。导入 CA 证书或根证书,请参见第 1.5.4.2 节 “如何安装不受支持的 CA 的 CA 证书”。
中间 CA。导入 CA 证书链,请参见第 1.5.4.3 节 “如何安装 CA 证书链”。
(可选)配置 SGD 以进行防火墙转发。
有关何时使用防火墙转发的详细信息,请参见第 1.5.2 节 “防火墙穿越”。
启用 SGD 安全服务并重新启动 SGD。
要启用安全连接,必须启用 SGD 安全服务并重新启动 SGD。
使用以下过程可安装通过使用 tarantella security certrequest 命令生成 CSR 而获取的服务器 SSL 证书。
在开始之前,请确保可以访问服务器 SSL 证书。SSL 证书必须采用 PEM 格式。
在 SGD 主机上,以超级用户 (root) 身份登录。
安装服务器 SSL 证书。
使用 tarantella security certuse 命令安装 SSL 证书。
如果要替换服务器 SSL 证书(例如,因为原始 SSL 证书将要过期),tarantella security certuse 命令将提示您以便在覆盖 SSL 证书和私钥之前进行确认。
在安装服务器 SSL 证书时,会将存储在 /opt/tarantella/var/tsp/key.pending.pem
文件中的私钥移到 /opt/tarantella/var/tsp/key.pem
文件中。
如果指定某个文件的路径,则必须指定该文件的全路径。ttasys
用户必须能够读取此路径。
CSR、SSL 证书和私钥存储在 SGD 服务器上的 /opt/tarantella/var/tsp
目录中。
要从标准输入安装 SSL 证书,请使用以下命令:
# tarantella security certuse
将服务器 SSL 证书粘贴到标准输入中,然后按 Ctrl-D 组合键。
要从临时文件安装 SSL 证书,请使用以下命令:
# tarantella security certuse < /tmp/cert
要从永久文件安装 SSL 证书,请使用以下命令:
# tarantella security certuse --certfile /opt/certs/cert.pem
此命令将创建指向 SGD 服务器上的 /opt/tarantella/var/tsp
目录中存储的 SSL 证书文件的符号链接。在运行此命令之后,请勿删除或移动 SSL 证书文件。
在开始之前,请确保可以访问 CA 证书。CA 证书必须采用 PEM 格式。
在 SGD 主机上,以超级用户 (root) 身份登录。
安装 CA 证书。
使用 tarantella security customca 命令。
要从标准输入安装 CA 证书,请使用以下命令:
# tarantella security customca
将 CA 证书粘贴到标准输入中,然后按 Ctrl-D 组合键。
要从文件安装 CA 证书,请使用以下命令:
# tarantella security customca --rootfile /tmp/cert
指定文件的全路径。ttasys
用户必须能够读取此路径。
在开始之前,请确保拥有 CA 证书链中的所有证书。证书必须采用 PEM 格式。
在 SGD 主机上,以超级用户 (root) 身份登录。
将链中的所有证书组合到一个文件中。
例如,创建一个名为 chainedcerts.pem
的文件。
用于对服务器 SSL 证书进行签名的 CA 证书必须首先出现,例如:
-----BEGIN CERTIFICATE----- ...Intermediate CA's certificate
... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ...CA root certificate
... -----END CERTIFICATE-----
安装 CA 证书链。
使用 tarantella security customca 命令。
要从标准输入安装 CA 证书,请使用以下命令:
# tarantella security customca
将 CA 证书链粘贴到标准输入中,然后按 Ctrl-D 组合键。
要从文件安装 CA 证书,请使用以下命令:
# tarantella security customca --rootfile /tmp/chainedcerts.pem
指定文件的全路径。ttasys
用户必须能够读取此路径。
配置阵列中的每个 SGD Web 服务器以绑定到 localhost 和 TCP 端口 443。
对阵列中的每个 SGD Web 服务器重复以下步骤。
在 SGD 主机上,以超级用户 (root) 身份登录。
编辑 Apache 配置文件。
配置文件为 /opt/tarantella/webserver/apache/
。
apache-version
/conf/httpd.conf
更改 "SSL Support"(SSL 支持)部分中的 <IfDefine SSL>
指令。
将指令更改为以下内容:
<IfDefine SSL> Listen 127.0.0.1:443 </IfDefine>
保存更改。
以超级用户 (root) 身份登录阵列中的主 SGD 服务器。
配置阵列中的每个 SGD 服务器以便将 TCP 端口 443 用于加密连接。
使用以下命令:
# tarantella config edit --array-port-encrypted 443
也可以在管理控制台中配置该端口。转到 "Global Settings"(全局设置)→ "Communication"(通信)选项卡。在 "Encrypted Connections Port"(加密的连接端口)字段中键入 443。
配置阵列中的每个 SGD 服务器以便将 HTTP 通信转发到 SGD Web 服务器。
使用以下命令:
# tarantella config edit --array \ --security-firewallurl https://127.0.0.1:443
也可以在管理控制台中配置该端口。选择一个 SGD 服务器,然后转到 "Security"(安全)选项卡。在 "Firewall Forwarding URL"(防火墙转发 URL)字段中键入 https://127.0.0.1:443。
检查阵列中的每个 SGD 服务器的防火墙转发 URL 是否已生效。
使用以下命令检查每个服务器:
# tarantella config list --server serv
--security-firewallurl
确保 SGD 服务器正在运行。使用 tarantella status 命令可以显示 SGD 服务器的当前状态。
确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。
在 SGD 主机上,以超级用户 (root) 身份登录。
启用 SGD 安全服务。
使用以下命令:
# tarantella security start
重新启动 SGD 服务器和 SGD Web 服务器。
使用以下命令:
# tarantella restart --https
启用了安全性以后,只要重新启动 SGD 就可以使用安全服务。
在使用与 SGD 的安全连接时,用户会看到以下部分或全部安全警告:
浏览器和 Java Plug-in 软件安全警告
SGD 服务器 SSL 证书安全警告
"Untrusted initial connection"(不可信的初始连接)警告
即使没有启用 SGD 安全服务,用户也可能会看到这些警告。这是因为 SGD 客户端与 SGD 服务器之间的初始连接始终是安全连接。
本节介绍为什么会出现这些警告以及可以对这些警告执行什么操作。
如果启用了与 SGD Web 服务器的安全连接 (HTTPS),则当用于对 Web 服务器 SSL 证书进行签名的 CA 证书或根证书在浏览器的证书库中不可用时,用户将看到警告。要使 Web 服务器 SSL 证书能够被验证但不显示安全警告,请将 CA 证书或根证书导入到用户的浏览器证书库中。可使用浏览器的工具执行此操作。
如果浏览器启用了 Java 技术,则 Java Plug-in 软件也可能会向用户发出有关 Web 服务器 SSL 证书的警告。这取决于 Java 控制面板中的配置。默认情况下,Java Plug-in 软件会配置为使用浏览器证书库中的证书。如果 Plug-in 软件未配置为这样做,则可能必须使用 Java 控制面板导入 CA 证书或根证书。
当用户登录到有服务器 SSL 证书的 SGD 服务器时,SGD 客户端会在继续运行前验证证书。
如果服务器 SSL 证书存在问题,用户将看到安全警告消息。通过安全警告消息,用户可以查看 SSL 证书详细信息,然后决定是永久或临时接受该 SSL 证书,还是拒绝该证书。图 1.1 “SGD 服务器 SSL 证书安全警告消息示例”显示了一个安全警告消息示例。
如果用户拒绝 SSL 证书,则将终止与 SGD 的连接。
如果用户临时接受 SSL 证书,则表示同意使用初始连接,并在用户会话生命周期内缓存 SSL 证书详细信息。用户下一次登录时,系统会再次发出有关 SSL 证书的提示。如果用户永久接受 SSL 证书,则表示同意使用初始连接,并且不再向其发出有关 SSL 证书的提示。有关同意使用初始连接的详细信息,请参阅第 1.5.5.3 节 “"Untrusted Initial Connection"(不可信的初始连接)警告”。
在以下情形中,用户将看到有关 SSL 证书的安全警告:
无效日期-当前日期早于 SSL 证书中的 "Not Before"(不早于)日期,或者当前日期晚于 SSL 证书中的 "Not After"(不晚于)日期
不正确的主机名-SGD 客户端连接到的主机的名称与 SSL 证书中的 "Subject"(主题)或 "Subject Alt Name"(拥有者替代名称)不匹配
未知颁发者-SSL 证书由不受支持的 CA 签名
有关如何避免未知颁发者安全警告的详细信息,请参见第 1.5.5.3.2 节 “避免未知颁发者安全警告”。
SGD 要求用户对其与 SGD 的连接授权,以便用户只连接到其信任的服务器。用户首次连接到 SGD 服务器时,会看到一条 "Untrusted Initial Connection"(不可信的初始连接)消息,提示这是用户第一次连接到服务器,如图 1.2 “"Untrusted Initial Connection"(不可信的初始连接)警告”中所示。
通过单击 "View Certificate"(查看证书)按钮并检查 "Validity"(有效性)和 "Subject"(主题)详细信息是否正确,用户可以检查 SSL 证书详细信息。用户必须在单击 "Yes"(是)同意使用连接之前执行此操作。当用户同意使用某个连接时,将在客户端设备上更新以下文件:
hostsvisited
certstore.pem
hostsvisited
和 certstore.pem
文件的存储位置与用户的客户端配置文件缓存位置相同。有关详细信息,请参见第 6.2.5 节 “关于配置文件缓存”。
如果用户同意使用与 SGD 服务器的连接,则将使用 SGD 服务器的名称更新客户端设备上的 hostsvisited
文件。如果服务器 SSL 证书是由不受支持的 CA 签名的,则还将添加 CA 证书的指纹。除非存在问题,否则用户不会再收到有关该连接的提示。
如果用户同意使用与 SGD 服务器的连接,并且服务器 SSL 证书有效,则将服务器 SSL 证书添加到客户端设备上的 certstore.pem
文件中。
如果服务器 SSL 证书存在问题(例如,由不受支持的 CA 签名),则用户将看到证书安全警告,如第 1.5.5.2 节 “SGD 服务器 SSL 证书安全警告”中所述。如果用户永久接受 SSL 证书或者 SSL 证书及其 CA 链,并同意使用与 SGD 服务器的连接,则将 SSL 证书添加到客户端设备上的 certstore.pem
文件中。用户下一次登录时,不会收到有关该 SSL 证书的提示。如果用户临时接受 SSL 证书,并同意使用与 SGD 服务器的连接,则不会将 SSL 证书添加到客户端设备上的 certstore.pem
文件中。用户下一次登录时,将收到有关该 SSL 证书的提示。
如果连接存在问题(例如因为服务器 SSL 证书已发生更改),则会显示 "Potentially Unsafe Connection"(连接可能不安全)消息,如图 1.3 “"Potentially Unsafe Connection"(连接可能不安全)消息”中所示。
要确保用户仅连接到受信任的 SGD 服务器,SGD 管理员可执行以下操作:
向用户解释同意使用与 SGD 服务器的连接的安全含义。
向用户提供预配置的 hostsvisited
文件。请参见第 1.5.5.3.1 节 “使用预配置的 hostsvisited
文件”。
有关如何防止用户看到未知颁发者安全警告的详细信息,另请参见第 1.5.5.3.2 节 “避免未知颁发者安全警告”。
预配置的 hostsvisited
文件可用于防止用户在 SGD 客户端首次连接到 SGD 服务器时看到警告。也可以使用该文件将 SGD 服务器限制为 SGD 客户端可以连接的服务器。
要使用预配置的 hostsvisited
文件,请先创建一个包含所有 SGD 服务器的主机名的文件。如果 SGD 服务器的服务器 SSL 证书是由不受支持的 CA 签名的,则还必须添加 CA 证书的指纹。执行此操作的最容易的方式是复制并编辑现有的 hostsvisited
文件,然后将其安装在客户端设备上。也可以使用 tarantella security fingerprint 命令获取 CA 证书指纹。
可以手动将 <allowhostoverride>
行添加到 hostsvisited
文件中。如果 <allowhostoverride>
行的值为 0
,则 SGD 客户端只能连接到在 hostsvisited
文件中有条目的 SGD 服务器。如果 <allowhostoverride>
行的值为 1
或者缺少 <allowhostoverride>
行,则 SGD 客户端可以连接到任何 SGD 服务器。仅当 SGD 客户端连接到未在 hostsvisited
文件中列出的 SGD 服务器时,用户才会看到警告。以下是一个 hostsvisited
文件示例。
<?xml version="1.0" encoding="UTF-8" ?> <array> <allowhostoverride>0</allowhostoverride> <server peername="boston.example.com"> <certfingerprint>51:B7:6D:FA:6E:3B:BE:ED:37:73:D4:9D:5B:C5:71:F6 </certfingerprint> </server> </array>
当 SGD 服务器的服务器 SSL 证书是由不受支持的 CA 颁发时,会出现未知颁发者安全警告。显示该警告的原因是无法验证证书的颁发者。
避免未知颁发者安全警告的最容易的方式是确保服务器 SSL 证书由支持的 CA 签名。有关详细信息,请参见第 1.5.1.1 节 “支持的证书颁发机构”。
要使 SSL 证书能够被验证,必须安装 CA 证书或证书链。但是,即使安装了 CA 证书,用户在首次连接到 SGD 服务器时也会看到有关 SSL 证书的安全警告。防止用户看到证书警告的唯一方式是将服务器 SSL 证书添加到客户端设备上的 certstore.pem
文件中。服务器 SSL 证书存储在每个 SGD 服务器上的 /opt/tarantella/var/tsp/cert.pem
文件中。