1.5. 与 SGD 服务器的安全连接

通常,通过以安全模式安装 SGD 来配置与 SGD 服务器的安全连接。安全模式是安装 SGD 的默认方法,并且会自动配置安全连接,如第 1.5.3 节 “启用安全连接(自动配置)”中所述。

也可以安装 SGD 但不配置安全连接。这称为以非安全模式安装。

关于安全模式安装

以安全模式安装 SGD 时,将保护以下连接的安全:

启用了安全连接之后,请确保用户在其客户端配置文件中有登录 URL 的 HTTPS URL。请参见第 6.2 节 “客户端配置文件”

对于已经以安全模式安装的 SGD 服务器,以后可以使用手动配置来重新配置安全连接。请参见第 1.5.4 节 “启用安全连接(手动配置)”

关于非安全模式安装

以非安全模式安装 SGD 时,不保护与 SGD Web 服务器的 HTTP 连接的安全。与 SGD 服务器的初始 AIP 连接是安全的,但在用户登录以后,AIP 连接会降级为标准连接。

对于已经以非安全模式安装的 SGD 服务器,以后可以使用自动配置或手动配置来启用安全连接。自动配置是最容易使用的方法,请参见第 1.5.3 节 “启用安全连接(自动配置)”

本节包括以下主题:

1.5.1. SSL 证书

SSL 证书是一种经过编码的文件,安全服务(如 Web 服务器)使用该文件向客户端证明身份。启用安全连接时,SGD 服务器将需要 SSL 证书。

SGD Web 服务器预配置为使用与 SGD 服务器相同的 SSL 证书。这是在 Apache 配置文件 /opt/tarantella/webserver/apache/apache-version/conf/httpd.conf 中配置的。如果需要,可以为 SGD Web 服务器使用单独的 SSL 证书。

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 证书。

1.5.1.1. 支持的证书颁发机构

服务器 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 证书或证书链。

1.5.1.2. 自签名 SSL 证书

SGD 支持针对测试目的创建自签名服务器 SSL 证书,例如,在生成 SSL 证书之前等待完成注册要求期间。自签名证书的有效期为 365 天。

请仅在测试环境中使用自签名 SSL 证书,因为自签名 SSL 证书不是真正安全的证书。虽然可以使用自签名 SSL 证书向用户提供安全连接,但不能保证用户连接到的服务器是真实的服务器。

可以使用以下命令创建自签名 SSL 证书:

  • tarantella security selfsign-允许您对使用 tarantella security certrequest 命令生成的 CSR 进行自签名

  • tarantella security enable-允许您自动配置安全的 SGD 服务器并安装服务器 SSL 证书

1.5.1.3. 使用为其他产品获取的 SSL 证书

可以使用最初为其他产品(如 Web 服务器)获取的 SSL 证书。为此,您必须拥有该证书的私钥。如果私钥已被使用 SSLeay 或 OpenSSL 证书库的产品加密,则可通过使用 tarantella security decryptkey 命令将其解密来获取私钥。如果您没有私钥,则必须获取一个新的服务器 SSL 证书。

1.5.1.4. 如何生成证书签名请求

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 生成 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.
    
  3. 将 CSR 发送到 CA。

    有关 SGD 默认支持的 CA 的详细信息,请参见第 1.5.1.1 节 “支持的证书颁发机构”

    复制作为命令行输出的 CSR,或者使用存储在 SGD 服务器上的 /opt/tarantella/var/tsp/csr.pem 文件中的 CSR 副本。

1.5.1.5. 如何替换服务器 SSL 证书

使用以下过程可以替换 SGD 服务器的服务器 SSL 证书(例如,因为原始 SSL 证书将要过期)。

  1. (可选)生成 CSR 并将其发送给 CA。

    请参见第 1.5.1.4 节 “如何生成证书签名请求”

  2. 安装服务器 SSL 证书。

    请参见第 1.5.4.1 节 “如何安装服务器 SSL 证书”

  3. (可选)安装 CA 证书。

    仅当服务器 SSL 证书由不受支持的 CA(或中间 CA)签名时才执行此步骤,请参见第 1.5.1.1 节 “支持的证书颁发机构”

    必须安装的证书如下:

  4. 重新启动 SGD 服务器和 SGD Web 服务器。

    必须重新启动 SGD 服务器以确保新的服务器 SSL 证书用于安全链接。

    确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。

    使用以下命令:

    # tarantella restart

1.5.2. 防火墙穿越

与 SGD 服务器的 AIP 连接是在 TCP 端口 3144 和 5307 上建立的。如果无法在防火墙中打开所需的端口,则可通过单个端口(通常为端口 443)为所有 SGD 通信定向。为此,可以使用以下方法之一:

SGD Gateway 是防火墙穿越的最佳解决方案,具有诸如负载平衡的 HTTP 连接之类的其他优势。

1.5.2.1. SGD Gateway

SGD Gateway 是可选 SGD 组件。它是一个代理服务器,可以部署在隔离区 (demilitarized zone, DMZ) 中的某个 SGD 阵列之前,并支持将 SGD 阵列放在内部网络上。此外,在与阵列中的 SGD 服务器建立连接之前,可以先在 DMZ 中对所有连接进行验证。

有关如何安装、配置和使用 SGD Gateway 的说明,请参见《Oracle Secure Global Desktop Gateway 发行版 4.7 管理指南》。

1.5.2.2. 使用防火墙转发

如果不使用 SGD Gateway,则可使用防火墙转发使用户可以通过单个端口访问 SGD。使用防火墙转发时,要将 SGD 服务器配置为侦听端口 443。然后,SGD 服务器将不是 AIP 通信的所有通信转发到 SGD Web 服务器。

如果将 SGD 配置为进行防火墙转发,则无法使用依赖于客户端设备 IP 地址过滤的任何 SGD 功能。也就是说,无法使用以下功能:

使用防火墙转发时,可以配置单个外部 DNS 名称(例如 *:www.example.com),然后使用拆分 DNS,使客户端能够将该名称解析为不同的 IP 地址(具体取决于这些 IP 地址是在防火墙内部还是外部)。

1.5.3. 启用安全连接(自动配置)

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 一起使用。

1.5.3.1. 如何启用安全连接(自动配置)

在开始之前,请确保您可以访问服务器 SSL 证书,以及私钥和 CA 证书(如果需要)。证书必须采用 PEM 格式。

确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。

确保 SGD 服务器正在运行。使用 tarantella status 命令可以显示 SGD 服务器的当前状态。

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 安装服务器 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 ]\
      --certfile certificate-path --keyfile key-path
      
    • 如果服务器 SSL 证书是由不受支持的 CA 或中间 CA 签名的,请使用以下命令:

      # tarantella security enable [ --firewalltraversal off ]\
      --certfile certificate-path [--keyfile key-path] \
      --rootfile CA-certificate-path
      
    • 要使用自签名 SSL 证书启用 SGD 安全服务,请使用以下命令:

      # tarantella security enable [ --firewalltraversal off ]

1.5.4. 启用安全连接(手动配置)

使用手动配置启用安全连接需要执行以下步骤:

  1. (可选)生成证书签名请求 (Certificate Signing Request, CSR) 并将其发送给 CA。

    请参见第 1.5.1.4 节 “如何生成证书签名请求”

    如果获取服务器 SSL 证书但使用 tarantella security certrequest 命令生成 CSR,则此步骤是可选步骤。

    如果已经拥有其他产品(如 Web 服务器)的 SSL 证书,则也许可以使用该证书。请参见第 1.5.1.3 节 “使用为其他产品获取的 SSL 证书”

  2. 为阵列中的每个 SGD 服务器安装 SSL 证书。

    要使用安全连接,SGD 服务器必须提供 SSL 证书向 SGD 客户端证明自己的身份。请参见第 1.5.4.1 节 “如何安装服务器 SSL 证书”

  3. (可选)安装 CA 证书。

    仅当服务器 SSL 证书由不受支持的 CA(或中间 CA)签名时才执行此步骤,请参见第 1.5.1.1 节 “支持的证书颁发机构”

    必须安装的证书如下:

  4. (可选)配置 SGD 以进行防火墙转发。

    有关何时使用防火墙转发的详细信息,请参见第 1.5.2 节 “防火墙穿越”

    请参见第 1.5.4.4 节 “如何配置防火墙转发”

  5. 启用 SGD 安全服务并重新启动 SGD。

    要启用安全连接,必须启用 SGD 安全服务并重新启动 SGD。

    请参见第 1.5.4.5 节 “如何为 SGD 服务器启用 SGD 安全服务”

1.5.4.1. 如何安装服务器 SSL 证书

使用以下过程可安装通过使用 tarantella security certrequest 命令生成 CSR 而获取的服务器 SSL 证书。

在开始之前,请确保可以访问服务器 SSL 证书。SSL 证书必须采用 PEM 格式。

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 安装服务器 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 证书文件。

1.5.4.2. 如何安装不受支持的 CA 的 CA 证书

在开始之前,请确保可以访问 CA 证书。CA 证书必须采用 PEM 格式。

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 安装 CA 证书。

    使用 tarantella security customca 命令。

    • 要从标准输入安装 CA 证书,请使用以下命令:

      # tarantella security customca

      将 CA 证书粘贴到标准输入中,然后按 Ctrl-D 组合键。

    • 要从文件安装 CA 证书,请使用以下命令:

      # tarantella security customca --rootfile /tmp/cert

      指定文件的全路径ttasys 用户必须能够读取此路径。

1.5.4.3. 如何安装 CA 证书链

在开始之前,请确保拥有 CA 证书链中的所有证书。证书必须采用 PEM 格式。

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 将链中的所有证书组合到一个文件中。

    例如,创建一个名为 chainedcerts.pem 的文件。

    用于对服务器 SSL 证书进行签名的 CA 证书必须首先出现,例如:

    -----BEGIN CERTIFICATE-----
    ...Intermediate CA's certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...CA root certificate...
    -----END CERTIFICATE-----
    
  3. 安装 CA 证书链。

    使用 tarantella security customca 命令。

    • 要从标准输入安装 CA 证书,请使用以下命令:

      # tarantella security customca

      将 CA 证书链粘贴到标准输入中,然后按 Ctrl-D 组合键。

    • 要从文件安装 CA 证书,请使用以下命令:

      # tarantella security customca --rootfile /tmp/chainedcerts.pem

      指定文件的全路径ttasys 用户必须能够读取此路径。

1.5.4.4. 如何配置防火墙转发

  1. 配置阵列中的每个 SGD Web 服务器以绑定到 localhost 和 TCP 端口 443。

    对阵列中的每个 SGD Web 服务器重复以下步骤。

    1. 在 SGD 主机上,以超级用户 (root) 身份登录。

    2. 编辑 Apache 配置文件。

      配置文件为 /opt/tarantella/webserver/apache/apache-version/conf/httpd.conf

    3. 更改 "SSL Support"(SSL 支持)部分中的 <IfDefine SSL> 指令。

      将指令更改为以下内容:

      <IfDefine SSL>
      Listen 127.0.0.1:443
      </IfDefine>
    4. 保存更改。

  2. 以超级用户 (root) 身份登录阵列中的主 SGD 服务器。

  3. 配置阵列中的每个 SGD 服务器以便将 TCP 端口 443 用于加密连接。

    使用以下命令:

    # tarantella config edit --array-port-encrypted 443
    提示

    也可以在管理控制台中配置该端口。转到 "Global Settings"(全局设置)→ "Communication"(通信)选项卡。在 "Encrypted Connections Port"(加密的连接端口)字段中键入 443。

  4. 配置阵列中的每个 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。

  5. 检查阵列中的每个 SGD 服务器的防火墙转发 URL 是否已生效。

    使用以下命令检查每个服务器:

    # tarantella config list --server serv --security-firewallurl
    

1.5.4.5. 如何为 SGD 服务器启用 SGD 安全服务

确保 SGD 服务器正在运行。使用 tarantella status 命令可以显示 SGD 服务器的当前状态。

确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 启用 SGD 安全服务。

    使用以下命令:

    # tarantella security start
  3. 重新启动 SGD 服务器和 SGD Web 服务器。

    使用以下命令:

    # tarantella restart --https 

    启用了安全性以后,只要重新启动 SGD 就可以使用安全服务。

1.5.5. 安全连接和安全警告

在使用与 SGD 的安全连接时,用户会看到以下部分或全部安全警告:

  • 浏览器和 Java Plug-in 软件安全警告

  • SGD 服务器 SSL 证书安全警告

  • "Untrusted initial connection"(不可信的初始连接)警告

注意

即使没有启用 SGD 安全服务,用户也可能会看到这些警告。这是因为 SGD 客户端与 SGD 服务器之间的初始连接始终是安全连接。

本节介绍为什么会出现这些警告以及可以对这些警告执行什么操作。

1.5.5.1. 浏览器和 Java Plug-in 软件安全警告

如果启用了与 SGD Web 服务器的安全连接 (HTTPS),则当用于对 Web 服务器 SSL 证书进行签名的 CA 证书或根证书在浏览器的证书库中不可用时,用户将看到警告。要使 Web 服务器 SSL 证书能够被验证但不显示安全警告,请将 CA 证书或根证书导入到用户的浏览器证书库中。可使用浏览器的工具执行此操作。

如果浏览器启用了 Java 技术,则 Java Plug-in 软件也可能会向用户发出有关 Web 服务器 SSL 证书的警告。这取决于 Java 控制面板中的配置。默认情况下,Java Plug-in 软件会配置为使用浏览器证书库中的证书。如果 Plug-in 软件未配置为这样做,则可能必须使用 Java 控制面板导入 CA 证书或根证书。

1.5.5.2. SGD 服务器 SSL 证书安全警告

当用户登录到有服务器 SSL 证书的 SGD 服务器时,SGD 客户端会在继续运行前验证证书。

如果服务器 SSL 证书存在问题,用户将看到安全警告消息。通过安全警告消息,用户可以查看 SSL 证书详细信息,然后决定是永久或临时接受该 SSL 证书,还是拒绝该证书。图 1.1 “SGD 服务器 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 节 “避免未知颁发者安全警告”

1.5.5.3. "Untrusted Initial Connection"(不可信的初始连接)警告

SGD 要求用户对其与 SGD 的连接授权,以便用户只连接到其信任的服务器。用户首次连接到 SGD 服务器时,会看到一条 "Untrusted Initial Connection"(不可信的初始连接)消息,提示这是用户第一次连接到服务器,如图 1.2 “"Untrusted Initial Connection"(不可信的初始连接)警告”中所示。

图 1.2. "Untrusted Initial Connection"(不可信的初始连接)警告

"Untrusted Initial Connection"(不可信的初始连接)警告的屏幕抓图。

通过单击 "View Certificate"(查看证书)按钮并检查 "Validity"(有效性)和 "Subject"(主题)详细信息是否正确,用户可以检查 SSL 证书详细信息。用户必须在单击 "Yes"(是)同意使用连接之前执行此操作。当用户同意使用某个连接时,将在客户端设备上更新以下文件:

  • hostsvisited

  • certstore.pem

hostsvisitedcertstore.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"(连接可能不安全)消息”中所示。

图 1.3. "Potentially Unsafe Connection"(连接可能不安全)消息

"Potentially Unsafe Connection"(连接可能不安全)警告的屏幕抓图。

要确保用户仅连接到受信任的 SGD 服务器,SGD 管理员可执行以下操作:

有关如何防止用户看到未知颁发者安全警告的详细信息,另请参见第 1.5.5.3.2 节 “避免未知颁发者安全警告”

1.5.5.3.1. 使用预配置的 hostsvisited 文件

预配置的 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>
1.5.5.3.2. 避免未知颁发者安全警告

当 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 文件中。