Ativando o SSL para Comunicações do Agente

Os componentes do Build Forge® são configurados por padrão para usar certas portas e configurações de segurança quando a SSL for ativada.

Para ativar a comunicação de SSL entre o Build Forge® e os agentes, você deve fazer o seguinte:

Configurando Agentes para SSL

  1. Se o agente estiver em execução, pare-o.
  2. Coloque os arquivos .PEM para os certificados no diretório de instalação raiz para o agente.
    Para implementar e testar SSL rapidamente, copie os arquivos .PEM da instalação do Build Forge. Os arquivos estão em <bfinstall>/keystore.
    Nota: Se sua versão do agente (bfagent -v) não for igual ou maior que 8.0, você deve usar seu utilitário do agente antigo openssl na pasta da instalação do agente para gerar novamente o buildForgeKey.pem a partir do novo buildForgeKeyStore.p12 para que seu agente antigo use. Por exemplo,
    openssl pkcs12 -in buildForgeKeyStore.p12 -passin pass:<bfpassword> -passout pass:<bfpassword> -out buildForgeKey.pem
    .

    A melhor prática para SSL é usar um certificado separado para cada agente:

    1. Crie arquivos keystore separados (.PEM) para cada um dos seguintes:
      • Chave privada (key)
      • Certificado público para a chave privada (cert)
      • Assinantes confiáveis (ca ou autoridade de certificação)
    2. Se estiver usando um certificado exclusivo para o agente (em vez de uma cópia do certificado de mecanismo do Build Forge®), inclua o certificado para o agente no keystore do autoridade de certificação para o Build Forge®, <bfinstall>/keystore/buildForgeCA.pem. Se você estiver executando vários mecanismos (redundantes), inclua o certificado no keystore da autoridade de certificação de cada mecanismo.
    3. Se estiver usando kdb no System z, use gskkeyman para criar o kdb.
    4. Se estiver usando um conjunto de chaves de System Authorization Facility (SAF), use RACF para criar o conjunto de chaves e conectar o certificado ao conjunto de chaves.
  3. Edite BFAgent.conf. As linhas a seguir são comentadas no arquivo. Remova o prefixo de comentário.
    ssl_key_location buildForgeKey.pem
    ssl_key_password password
    ssl_cert_location buildForgeCert.pem
    ssl_ca_location buildForgeCA.pem
    ssl_protocol TLSv1
    ssl_cipher_group ALL

    A password é para o keystore buildForgeKey.pem. Se você quiser criptografá-la, consulte Criptografando Senhas em buildforge.conf e bfagent.conf.

    Se você quiser exigir autenticação do cliente quando for feita uma conexão com o agente, remova o comentário da seguinte linha:
    ssl_client_authentication true
    Essa configuração requer que o certificado do mecanismo seja incluído no keystore da autoridade de certificação do agente, buildForgeCA.pem.
    Se você quiser usar códigos específicos, remova o comentário desta linha e inclua sua lista de códigos:
    ssl_cipher_override cipher_list
  4. Para agentes em execução no System z, edite BFAgent.conf e remova o comentário das linhas a seguir:
    gsk_ssl_key_location <root/cert
    SAF>
    gsk_ssl_key_location /etc/key.kdb
    gsk_ssl_kdb_password <password>
    gsk_keyring_label <certificate label>
    gsk_ssl_protocol ALL
    gsk_ssl_cipher_v2 6321
    gsk_ssl_cipher_v3 0906030201
    gsk_ssl_client_authentication true
    gsk_password_encrypt false

    Use apenas um gsk_ssl_key_location. É possível escolher entre um conjunto de chaves SAF ou um kdb. Um conjunto de chaves SAF é especificado por <userid>/<keyring>.

  5. Inicie o agente. O agente deve estar em execução para testar a conexão do console.

Ativando SSL em Definições do Servidor

O console usa as definições de servidor para se conectar a agentes.

Para cada definição do servidor conectada a um agente ativado por SSL, faça o seguinte:

Resolução de Problemas de Comunicação SSL com Agentes

A lista de verificação a seguir descreve problemas comuns ao ativar a SSL.

Ativando Mensagens de Depuração

Você pode ativar a depuração no mecanismo e no agente. Quando a depuração está ativada, é produzida saída detalhada adicional que pode ajudar a identificar problemas na configuração.

Exemplo de Saída de Depuração do Mecanismo para uma Conexão SSL Bem-sucedida

Um mecanismo produz a seguinte saída quando se conecta com êxito a um agente.


SSL_ca_file: ./keystore/buildForgeCA.pem
SSL_cert_file: ./keystore/buildForgeCert.pem
SSL_key_file: ./keystore/buildForgeKey.pem
SSL_verify_mode: 0x01
SSL_version: TLSv1
SSL_cipher_list: ALL
SSL_use_cert: 1
Making as SSL connection using socket IO::Socket::INET=GLOB(0x1e8f0f4).
SSL connection to agent.
DEBUG: .../IO/Socket/SSL.pm:1387: new ctx 80662848
DEBUG: .../IO/Socket/SSL.pm:880: dont start handshake: IO::Socket::SSL=GLOB(0x1e8f0f4)
DEBUG: .../IO/Socket/SSL.pm:284: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:327: Net::SSLeay::connect -> 1
DEBUG: .../IO/Socket/SSL.pm:382: ssl handshake done
Socket is of type: ref(IO::Socket::SSL=GLOB(0x1e8f0f4))
ReadyLine: 202 HELLO TLS - BuildForge Agent v_VERSION_
.
Storing Agent Version [999.999.999.999-999-9999] for [08974C8E-6C3B-1014-972D-D9B2901D9F42]
cmd ping
username pbirk
encpass c1713f4a31af3f1300f7b2414a24559c4d6097e07310cf9c412e
go
Sending agent request...

Exemplo de Saída de Depuração do Agente para uma Conexão SSL Bem-sucedida

Um agente em execução normal produz a seguinte saída ao estabelecer uma conexão SSL.


[2256] main.c          : 409: === NEW AGENT ===
[2256] io.c            : 264: In start_SSL
[2256] io.c            :  89: Key location: buildForgeKey.pem
[2256] bfpwdlocloader.c: 134: Looking for password locator: ssl_key_password_locator
[2256] bfpwdlocloader.c: 244: Looking for password for prop 
                              ssl_key_password from bfagent.conf.
[2256] bfcryptloader.c : 202: Loading password encryption module.
[2256] bfcryptloader.c : 276: Password encryption property 
                              password_encrypt_module is not configured.
[2256] bfcryptloader.c : 539: Password decoded.
[2256] io.c            :  98: Cert location: buildForgeCert.pem
[2256] bfpwdlocloader.c: 134: Looking for password locator: 
                              ssl_cert_password_locator
[2256] bfpwdlocloader.c: 244: Looking for password for prop 
                              ssl_cert_password from bfagent.conf.
[2256] io.c            : 153: Setting key password in default userdata.
[2256] io.c            : 160: Getting private key from PEM.
[2256] io.c            : 166: Checking private key from PEM.
[2256] io.c            : 172: Getting CA store information.
[2256] bfpwdlocloader.c: 134: Looking for password locator: 
                              ssl_ca_password_locator
[2256] bfpwdlocloader.c: 244: Looking for password for prop 
                              ssl_ca_password from bfagent.conf.
[2256] io.c            : 178: CA location: buildForgeCert.pem
[2256] io.c            : 184: Checking the CA store.
[2256] io.c            : 230: Returning from init_CTX.
[2256] io.c            : 281: Calling SSL_new
[2256] io.c            : 294: Calling SSL_accept.
[2256] io.c            : 346: Cipher chosen: AES256-SHA
[2256] io.c            : 367: ssl_state = SS_CERTIFIED

Exemplo de Saída de Senha de Keystore Inválida no Agente

Se a senha do keystore configurada no lado do agente estiver errada, será mostrado em ambas as saídas de mecanismo e agente.

Saída do mecanismo (extrato):


SSL_use_cert: 1
Making as SSL connection using socket IO::Socket::INET=GLOB(0x1e8f0f4).
SSL connection to agent.
DEBUG: .../IO/Socket/SSL.pm:1387: new ctx 80662848
DEBUG: .../IO/Socket/SSL.pm:880: dont start handshake: IO::Socket::SSL=GLOB(0x1e8f0f4)
DEBUG: .../IO/Socket/SSL.pm:284: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:327: Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:1135: SSL connect attempt failed with unknown error
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

DEBUG: .../IO/Socket/SSL.pm:333: fatal SSL error: SSL connect attempt failed with unknown error
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
DEBUG: .../IO/Socket/SSL.pm:1422: free ctx 80662848 open=80662848 80566656
DEBUG: .../IO/Socket/SSL.pm:1425: OK free ctx 80662848

Saída do agente (extrato):


[    5272] io.c            :  98: Cert location: buildForgeCert.pem
[    5272] bfpwdlocloader.c: 134: Looking for password locator: ssl_cert_passwor
d_locator
[    5272] bfpwdlocloader.c: 244: Looking for password for prop ssl_cert_password from bfagent.conf.
[    5272] io.c            : 153: Setting key password in default userdata.
[    5272] io.c            : 160: Getting private key from PEM.
[    5272] io.c            : 218: Failure reason: SSLErrorBadPKeyFile
[    5272] io.c            : 221: OpenSSL error string: error:00000000:lib(0):func(0):reason(0)
[    5272] io.c            : 281: Calling SSL_new
[    5272] platform.c      :2693: platform_release_credentials
[    5272] main.c          : 412: --- EXITING ---

Códigos de Erro na Saída do Agente

Esta lista inclui alguns dos outros códigos de erros que puder encontrar e suas causas:


Feedback