Gerar certificados para configuração do Navegador sem interface para Linux

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 3 min. de leitura
  • Gere certificados TLS/SSL para proteger a REST API do Docker e autenticar solicitações HTTP.

    Antes de Iniciar

    Conclua os pré-requisitos listados no tópico Configuração do navegador remoto para Linux.

    Função necessária: administrador na instância ServiceNow e administrador local na máquina host.

    Por Que e Quando Desempenhar Esta Tarefa

    Aviso:
    Obtenha chaves de autoridade de certificação de uma autoridade de certificação confiável.

    Por padrão, ao expor a Docker API, as solicitações não são autenticadas, o que pode deixar sua máquina host vulnerável a ataques. A API do Docker, no entanto, é compatível com a autenticação TLS em que as solicitações são verificadas em relação às chaves privadas públicas fornecidas na criptografia HTTPS. Nesta etapa, você cria essas chaves para o servidor e o cliente.

    Dica:
    Para facilitar a memorização deles, insira os seguintes comandos no terminal do Linux. Observação: não adicione essas variáveis de ambiente ao perfil do terminal. Por motivos de segurança, eles devem existir somente durante a sessão atual.
    • exportar SENHA="<password to generate the certificates with> "
    • exportar SERVERIP="<this server's IP address> "
    • exportar HOSTNAME="<hostname of this server> "
    Para saber mais, consulte Usar TLS (HTTPS) para proteger o soquete do daemon do Docker.

    Procedimento

    1. Abra uma linha de comando.
    2. Gere uma chave de autoridade de certificação autoassinada ou recupere um par de chaves de uma autoridade de certificação confiável.
      Os comandos a seguir são um exemplo. Observe que sua configuração pode variar.
      • openssl generation -aes256 -passout pass:$PASSWORD -out ca-key.pem 4096
      • openssl req -passin pass:$PASSWORD -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
      • chmod 0400 ca-key.pem
      • chmod 0444 ca.pem
    3. Gere o par de chaves do servidor usando a chave de autoridade de certificação.
      Os comandos a seguir são um exemplo. Observe que sua configuração pode variar.
      • openssl generation -out server-key.pem 4096
      • openssl req -subj "/CN=$HOSTNAME" -new -key server-key.pem -out server.csr
      • echo "subjectAltName = DNS:$HOSTNAME,IP:$SERVERIP,IP:127.0.0.1" > extfile.cnf
      • openssl x509 -passin pass:$PASSWORD -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
    4. Crie o par de chaves do cliente usando a chave da autoridade de certificação.
      Os comandos a seguir são um exemplo. Observe que sua configuração pode variar.
      • openssl generation -out client-key.pem 4096
      • openssl req -subj "/CN=$HOSTNAME" -new -key client-key.pem -out client.csr
      • echo "extendedKeyUsage = clientAuth" > extfile.cnf
      • openssl x509 -passin pass:$PASSWORD -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile.cnf

      Agora você criou todas as suas chaves de criptografia.

    5. Importe a chave pública da CA e o par de chaves do cliente para um armazenamento de chaves java.
      Os comandos a seguir são um exemplo. Observe que sua configuração pode variar.

      Crie o arquivo de armazenamento de chaves e uma senha para ele (e salve para uso posterior): keytool -genkey -keyalg RSA -alias dse -keystore my.keystore

      Exclua uma entrada padrão do arquivo de armazenamento de chaves: keytool -delete -alias dse -keystore my.keystore

      Importe a chave pública da CA para o armazenamento de chaves: keytool -import -keystore my.keystore -trustcacerts -alias ca -file ca.pem

      Importe o par de chaves do cliente.
      Nota:
      Você está criando um novo arquivo de armazenamento de chaves pkcs12 e importando o par de chaves para ele. Em seguida, copie o conteúdo para o arquivo de armazenamento de chaves original.
      • openssl pkcs12 -export -name clientkeypair -in client-cert.pem -inkey client-key.pem -out clientkeypair.p12
      • keytool -importarkeystore -destkeystore my.keystore -srckeystore clientkeypair.p12 -srcstoretype pkcs12 -alias clientkeypair

      Agora que você adicionou todos os certificados ao arquivo de armazenamento de chaves, salve o arquivo my.keystore para mais tarde, pois ele será carregado na instância ServiceNow. Além disso, certifique-se de lembrar a senha que você inseriu quando solicitado a criar o arquivo de armazenamento de chaves; você precisará inserir isso em um formulário na instância ServiceNow.