Rational BuildForge将 buildforge.conf 和 bfagent.conf 中的密码加密

来源:互联网 发布:网站内容管理系统cms 编辑:程序博客网 时间:2024/05/20 13:05

    BuildForge中有几处使用密码,想数据库,安装时的证书访问密码等,想数据库密码可能在一定时间后需要更改,如何对新的密码进行加密呢,本文主要讨论这些问题。

一 如何将密码加密
使用导出的密码密钥可构建要在 buildforge.conf 和 bfagent.conf 中使用的已加密密码。
buildforge.conf 文件包含 Build Forge 用于访问数据库的用户名和密码(db_password)。 该密码通常已编码但是可以加密。要为管理控制台将密码加密,请执行以下操作:
1. 转至管理控制台根目录。
    Windows:<bfinstall>
   UNIX 或 Linux:<bfinstall>/Platform
2. 运行以下命令:
    bfpwencrypt -e password
   使用您想加密的明文密码来替换 password。
   加密后的密码将发送到 stdout。
bfagent.conf 文件包含代理程序用于访问密钥库的密码密钥(ssl_key_password)。 该密码通常为明文,但是可以加密。要为代理程序加密密码,请执行以下操作:
   1. 转至代理程序根目录。
   2. 运行以下命令:
    bfagent -e password
    使用您想加密的明文密码来替换 password。
    加密后的密码将发送到 stdout。
    加密后的密码是包含在花括号中国的,并且以字符串 bfcrypt:开头,紧随其后的是已加密(AES 128位)并编码(Base63)的密码。已编码和加密的密码的示例:
Encoded:
dd8b42eed5cc051500f5bffe2b82b1aa6a67baee028a85d0cefa
Encrypted:
{bfcrypt:7427ab360c4010008f9d000049664966}drAIT1zLDGX/xRcvw65+B8aFpTqvmAdbmnh6FpwkHjU=


二 对密码加密的问题进行调试
      如果已加密的密码有问题,以下各节描述进行调试的方法。
      2.1  调试控制台中的密码加密问题
          服务层、Web 界面和引擎共享同一个密钥文件。当所有三个组件都安装在同一个主机上时,它们将使用同一个密钥文件:  
                 对于 Windows:
                       <bfinstall>/bfpwcrypt.conf
                 对于 UNIX 或 Linux:
                      <bfinstall>/Platform/bfpwcrypt.conf
           如果启用密码加密后出现问题,请检查以下事项:
             (1)请确保在启用密码加密之后重新启动 Build Forge。 请确保所有进程都已正确地停止并重新启动(Apache、Apache Tomcat 以及引擎)。
             (2)冗余控制台:如果使用同一数据库进行管理控制台的多次安装,那么这些安装必须全部使用同一个 bfpwcrypt.conf 文件。 最安全的方法是手动(而不是通过网络)分发该文件。
             (3)服务器定义:如果控制台中的 测试连接 失败,请确保已导出密钥,并将其正确地置于bfagent.conf 文件中。要确定存在密码问题,请禁用密码加密并尝试 测试连接 。
             (4)登录:如果在启用密码加密后无法登录,请确保 Build Forge 在 bfclient.conf 和 buildforge.conf中使用了正确的 bfpwcrypt.conf 密钥。 buildforge.conf 必须在 <bfinstall> 目录和服务层的副本中进行更新。请参阅Build Forge 配置文件(buildforge.conf)。


如果执行了所有这些检查,但是问题仍然存在,请尝试启用跟踪并检查输出日志。
             a。  Web 界面(UI):设置环境变量 BFDEBUG_SECURITY=1。
             b。  Web 界面:输出显示在文件中。
                 对于 Windows:
                    <bfinstall>/Apache/logs/php_error.log 

                 对于 UNIX 或 Linux:
                   <bfinstall>/server/apache/logs/php_error.log
             c。  引擎:在前台启动引擎。在安装目录中,运行 bfengine –d。对于 UNIX 或 Linux,可以使用bfengine –d 2>&1 | tee out.tx       t 将它以管道方式传输至文件。对于 Windows,如果有 tee 实用程序,那么可以执行相同的操作。
             d。     服务:执行以下操作:
                     d.1. 停止 Build Forge。
                     d.2. 在编辑器中打开日志文件。
                          对于 Windows:
                          <bfinstall>/Apache/tomcat/common/classes/logging.properties
                        对于 UNIX 或 Linux:
                           <bfinstall>/server/apache/tomcat/common/classes/logging.properties    
                    d.3. 将下行添加至文件末尾。
                           com.buildforge.services.common.security.level=ALL
                    d.4. 启动 Build Forge。
                    d.5. 检查输出。
                           对于 Windows:
                                 <bfinstall>/Apache/tomcat/logs/catalina.out
                           对于 UNIX 或 Linux:
                                 <bfinstall>/server/apache/tomcat/logs/catalina.out
                    
      2.2 调试代理程序中的密码加密问题
              调试代理程序通信包含代理程序和引擎组件。
              如果启用密码加密后出现问题,请检查以下事项:
                 (1)检查 bfagent.conf。下行应取消注释:
                         password_encrypt_module ./bfcrypt.dll;./bfpwcrypt.conf
                 (2)检查 bfpwcrypt.conf 是否存在于启动代理程序的目录中。它必须包含至少一个密钥条目。
                 (3)检查引擎的 bfpwcrypt.conf 中的最后一个条目是否存在于代理程序的 bfpwcrypt.conf 中的某处。

              如果执行了所有这些检查,但是问题仍然存在,请尝试启用跟踪并检查输出日志。要启用跟踪,请执行以下操作:
                    1. 打开 bfagent.conf。
                    2. 取消下行的注释:
                         activity_log bfagent.log
                        可以指定另一个路径来代替 bfagent.log。
              bfcrypt.dll 的路径问题
                      在 bfagent.conf 中,password_encrypt_module 属性必须指向 bfcrypt.dll 的正确路径。示例:
                      password_encrypt_module /opt/buildforge/bfcrypt.dll

 

        代理的示例配置文件

        bfagent.conf配置示例文件

 

 

 

         打开跟踪后,该路径的问题将通过类似以下的输出指示:
          [ 8928] bfcryptloader.c : 208: Loading password encryption module.
          [ 8928] bfcryptloader.c : 223: module: bfcrypt
          [ 8928] bfcryptloader.c : 232: Loading module: C:/BuildForge71.181.Agent/bfcrypt.dll
          [ 8928] bfcryptloader.c : 262: Failed loading DLL, error code = 0
         如果装入成功,将产生类似以下的输出:
         [ 12248] bfpwdlocloader.c: 134: Looking for password locator: ssl_key_password_locator
         [ 12248] bfpwdlocloader.c: 244: Looking for password for prop ssl_key_password from bfagent.conf.
         [ 12248] bfcryptloader.c : 208: Loading password encryption module.
         [ 12248] bfcryptloader.c : 223: module: bfcrypt
         [ 12248] bfcryptloader.c : 232: Loading module: ./bfcrypt.dll
         [ 12248] bfcryptloader.c : 269: Loading procedure bfcrypt_init.
        密码解密失败
           当密码由于密钥错误或某些其他原因而未能解密时,日志将包含类似于以下内容的行:
                [ 4912] agent.c : 237: AUTH failed
           如果确定密码是正确的,那么可以进一步诊断问题。启用对 bfcrypt.dll 模块的调试。要启用调试,
               请设置以下环境变量:
                    BFDEBUG_SECURITY=1
               如果代理程序作为服务运行,那么该环境变量需要全局设置。
          调试输出置于启动代理程序的目录中的 bfcrypt.txt 内。
          以下输出表示代理程序上的 bfpwcrypt.conf 中没有正确的密钥:
             load_keys_from_file: Parsed 1 key configurations.decrypt: Looking for key matching info:
             922492fe0c4010008304c3670e1e0e1e, length=32
             decrypt: Comparing against: 4d553f110c401000ac08000051f651f6, length=32
             decrypt: Warning! No matching key found.
           以下输出表示密钥匹配正确:
            load_keys_from_file: Parsed 2 key configurations.decrypt: Looking for key matching info:
            922492fe0c4010008304c3670e1e0e1e, length=32
            decrypt: Comparing against: 7427ab360c4010008f9d000049664966, length=32
            decrypt: Comparing against: 922492fe0c4010008304c3670e1e0e1e, length=32
            decrypt: Found match: 922492fe0c4010008304c3670e1e0e1e, length=32