使用 Data Workbench 中的自定义证书

有关使用自定义证书的说明。

Data Workbench 客户端或服务器使用的证书需要由受信任的 CA(证书颁发机构)签名。Data Workbench 客户会收到由 Visual Sciences CA 签名的证书。这些证书受到 Data Workbench 软件的信任,因为 trust_ca_cert.pem(随 Insight 软件一起提供,并存储在服务器和客户端的 Certificates 目录中)包含 Visual Sciences CA 的​根 CA 证书。当客户端和服务器使用 SSL 相互通信时,这些证书可同时用于软件和身份验证的授权。只有 Visual Sciences CA 颁发的证书才可用于授权,但是其他证书有可能被用于通信和身份验证。在下列情况中,由非 Visual Sciences 的 CA 颁发的证书被称为​自定义证书

重要说明:​对于服务器和客户端,Data Workbench 软件使用客户端中安装的证书文件,或服务器 Certificates 目录中的证书,或在其配置中明确标识的证书。然而,您还可以使用适用于客户端的 Windows 证书存储区

以下说明介绍了使用自定义证书在 Data Workbench 客户端和服务器之间通信时应遵循的流程。并非必须顾及到每一个细节,可在流程中采取不同的变通方式。但是,以下流程是经过测试并证明有效的。

设置自定义客户端证书

  1. 将发证 CA 的证书添加到 trust_cert_ca.pem,该文件安装在客户端的 Certificates 目录中,以及可使用此自定义证书访问的每个聚类内每个服务器的目录中。

  2. 获取聚类中每个服务器的自定义证书,这些证书具有以下条件:

    1. 证书的格式为 .pem 证书。

    2. 证书包含其私钥,并且未被加密(例如,它没有密码/密码短语)。

      证书包含其私钥,并且具有以下行之一:

      BEGIN PRIVATE KEY 
      BEGIN RSA PRIVATE KEY
      

      一种可以从 .pem 证书中删除密码短语的方法:

      openssl rsa  -in password-protected-cert.pem -out no-password-cert.pem 
      openssl x509 -in password-protected-cert.pem >> no-password.pem
      
    3. Certificate 具有 CN、O、OU 等,这是根据服务器的 Access Control.cfg 文件中此客户端的要求来决定的。

    4. 证书是通过 client(或 server client)的 *purpose **** 颁发的。

      要验证证书具有服务器和/或客户端的目的代码,可使用以下命令:

      openssl verify -CAfile trust_ca_cert.pem -purpose sslserver -x509_strict custom_communications_cert.pem 
      openssl verify -CAfile trust_ca_cert.pem -purpose sslclient -x509_strict custom_communications_cert.pem
      

      对于服务器证书,两个命令都应产生 OK:

      custom_communications_cert.pem: OK
      

      对于客户端证书,只需第二个命令产生 OK。

  3. 将证书置于客户端的 Certificates 目录中。

  4. 在您希望使用此证书的每个聚类 Insight.cfgserverInfo 下方的 ** 中,确保​自定义客户端证书​已命名,例如:

    Servers = vector: 1 items 
      0 = serverInfo: 
        SSL Client Certificate = string:
    <my_custom_client_cert.pem>
    

设置自定义服务器证书

此部分假设您拥有一个已设置并运行的聚类,它使用 Visual Sciences 颁发的证书,并且其配置遵循普通规则(例如主服务器上的 Components for Processing Servers 目录被同步到所有 DPU 的 Components 目录)。

  1. 将发证 CA 的证书添加到 trust_cert_ca.pem,该文件安装在聚类中的每个服务器上,以及需要与此聚类通信的每个客户端上。

  2. 获取聚类中每个服务器的自定义证书,这些证书具有以下要求:

    1. 自定义证书的格式为 .pem 证书。

    2. 证书包含其私钥,并且未被加密(例如,它没有密码/密码短语)。

      当证书具有类似下面的行时,需要包含其私钥:

      BEGIN PRIVATE KEY 
      BEGIN RSA PRIVATE KEY
      

      一种可以从 .pem 证书中删除密码短语的方法:

      openssl rsa  -in password-protected-cert.pem -out no-password-cert.pem 
      openssl x509 -in password-protected-cert.pem >> no-password.pem
      
    3. 证书具有与当前安装在服务器上的 server_cert.pem 相同的 CN。

    4. 证书是为了用于 serverclient 的目的而颁发的。

      要验证证书具有服务器和/或客户端的目的代码,可使用以下命令:

      openssl verify -CAfile trust_ca_cert.pem -purpose sslserver -x509_strict custom_communications_cert.pem 
      openssl verify -CAfile trust_ca_cert.pem -purpose sslclient -x509_strict custom_communications_cert.pem
      

      对于服务器证书,两个命令都应产生 OK:

      custom_communications_cert.pem: OK
      

      对于客户端证书,只需第二个命令产生 OK。

  3. 在服务器的 Certificates 目录中安装每个服务器的自定义证书,其名称为 custom_communications_cert.pem。

  4. 使用文本编辑器,将以下行同时添加到 ComponentsComponents for Processing Servers 目录的 Communications.cfg 文件中,它们位于第一行 (component = CommServer) 的正下方:

    Certificate = string: Certificates\\custom_communications_cert.pem
    
  5. 重新启动所有服务器。

关于证书失败的警告

当 Insight 服务器或客户端在 Certificates 目录中查找​“许可证”​证书时,它会尝试验证所有的证书(除 trust_ca_cert.pem 之外)是否存在 Insight CA 证书的硬编码副本,但是对于目录中存在的任何自定义证书而言,将出现验证失败的结果。服务器会发出下面的警告:

Certificate failed to verify. Error 20 at 0 depth. Desc: unable to get local issuer certificate. Cert details:

您可以放心地忽略此警告。

在此页面上